RedisのRailsでの使用

2641 ワード

ここでは二種類のライルス結合redisの提案を紹介します.
  • レディスを使用する.orm直接データモデルを操作する
  • は、データモデルを使用せずに、redis
  • を直接操作する.
    一、RedisOrm
    プロフィール:
    redisormは以前の基礎を変えて最低でもredisを使うことができます.具体的には:
  • 配置ファイル「redis.rb」
  • を追加します.
  • モデルを修正する.redisormを使用してマッピングするとmodelの作成が簡単になります.
  • 他は相変わらず
  • を使っています.
    ステップ:
    インストール
  • uuntu
  • sudo apt-get install redis-server
  • mac
  • brew install redis
  • 実行レポート
  • redis-cli
  • 新規プロジェクト試験rails new rails-redisGemfileを設定
    𝠔Gefile gem 'redis_orm' bundle新しいredis.rbファイルを作成します.
    ヽoo.ツ..................................................................
    require 'redis'
    # redis       
    `$redis = Redis.new(:host => 'localhost', port => 6379)`
    #redis     docker
    `$redis = Redis.new(:host => '192.168.99.100(host for docker)', :port => 23770(port for docker))`
    
    新しいUser.rbモデルファイルを作成します.
    ヽoo.ツ..............................................................
    class User < RedisOrm::Base
      property :first_name, String
      property :last_name, String
      property :created_at, Time
      property :modified_at, Time
    end
    
    走ってみます
    ヽoo.ツ..........................................................
    $cd redis-rails
    $rails c
    >$redis
    => #
    >$redis.set('name', 'Obama')
    => OK
    >$redis.get('name')
    => "Obama"
    >require 'User'
    => true
    >user = User.new :first_name => "spider", :last_name => "zhang"
    => #<0x0000000445d3b0>
    >user.save
    => true
    >User.find(1).first_name
    =>"spider"
    >User.find(1).last_name
    =>"zhang"
    
    二、$Redis
    プロフィール:
    直接的にredisを構成して、RAlsで一連の方法を定義してredisを操作して、データに対する操作のカプセル化を実現します.
    ステップ:
    Gemfileを設定gem 'redis' bundle installredis.rbを設定
    config/initializers/redis.rb(なければ新しいファイルを作成する)$redis = Redis.new # , 127.0.0.1:6379(redis hosts port)models操作ファイルを追加します.
    ハap/models/redis_operation.rb
    class RedisOperation
      def self.set_name(name)
        $redis.set('name',name)
      end  
    
      def self.set_sex(sex)
        $redis.set('sex',sex)
      end
    end
    
    ライルスconsleでテストします.
    >cd redis-rails
    >rails c
    >require 'redis_operation'
    => true
    >RedisOperation.set_name('Marry')
    => "OK"
    
    これで、両方の操作が成功しました.実際のプロジェクトに結び付ける時はもっと多くのRedisに対する調整最適化が必要です.