我想使用Redis而不是我的會話,原因很明顯。什麼是存儲數組的redis等價物?
舊國家代碼:
session[:some_stuff] = @my_objects.map(&:id)
再後來:
session[:some_stuff].each{|obj| ..
另外,
我想這個地圖的ID的存儲到Redis的。然後檢索它們。我無法找到任何與其他網絡資源相關的東西。有任何想法嗎?
我想使用Redis而不是我的會話,原因很明顯。什麼是存儲數組的redis等價物?
舊國家代碼:
session[:some_stuff] = @my_objects.map(&:id)
再後來:
session[:some_stuff].each{|obj| ..
另外,
我想這個地圖的ID的存儲到Redis的。然後檢索它們。我無法找到任何與其他網絡資源相關的東西。有任何想法嗎?
我試圖用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體系結構之外的無狀態位置。
您還沒有寫過關於如何設置Redis連接/適配器的內容,但基本上是SADD
,用於將元素添加到Redis集合,並且SMEMBERS
可檢索所有元素。
Yah我讀到了,但他們的文檔都不適用於外行。例如,文檔中的任何命令都會失敗,因爲'myset'未定義。 – Trip
你需要一個redis適配器。 https://github.com/redis/redis-rb另外,myset只是文檔示例鍵的名稱。你需要定義你自己的鍵,它基本上只是一個字符串。 – James