2012-04-30 11 views
2

私はRedisを使用したいと思いますが、私のセッションは明白な理由でこれを使用しません。アレイを格納するのに相当するredisとは何ですか?

旧国名コード:その後、後で

session[:some_stuff] = @my_objects.map(&:id) 

:また

session[:some_stuff].each{|obj| .. 

私はRedisのにIDのこのマップを保存したいと思います。そして、それらを取得します。他のウェブリソースに関連するものは見つかりません。何か案は?

答えて

-1

私はいくつかの問題を解決するだろうredis-store宝石の思考を使用しようとしたが、それはそれは動作しませんが判明しました。おそらく安定した1.0.0バージョン。

だから、これは私がやったことであり、それは非常にうまくいった:

def first_method 
    $redis = Redis.new 
    @customers.map(&:id).each{|c|$redis.sadd('export', c)} 


def other_method 
    @customers = [] 
    $redis.smembers('export').each{|c|@customers << Customer.find(c)} 

ノート

あなたは一度だけの一つの方法であるもの$ Redisの特定する必要があります。次に、MVCアーキテクチャの外部のステートレスな場所に自分自身を保存します。

1

Redis接続/アダプタの設定方法は書かれていませんが、基本的には、Redisセットに要素を追加する場合はSADD、すべての要素を取得する場合はSMEMBERSです。

http://redis.io/commands#set

+0

私はそれを読んだが、彼らのドキュメンテーションのどれも素人のために働いていない。例えば、 'myset'が定義されていないので、ドキュメント内のコマンドは失敗します。 – Trip

+0

赤ちゃんアダプターが必要です。 https://github.com/redis/redis-rbまた、mysetはドキュメントのサンプルキーの名前です。基本的に単なる文字列である独自のキーを定義する必要があります。 – James