什么是redis相当于存储数组?

时间:2012-04-30 20:35:21

标签: ruby-on-rails redis

出于显而易见的原因,我想使用Redis而不是我的会话。

旧国家代码:

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

然后:

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

可替换地,

我想把这张id的地图存储到redis中。然后检索它们。我找不到与其他网络资源相关的任何内容。有什么想法吗?

2 个答案:

答案 0 :(得分:1)

您还没有写过如何设置Redis连接/适配器,但基本上SADD用于向Redis集添加元素,SMEMBERS用于检索所有元素。

http://redis.io/commands#set

答案 1 :(得分:-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架构之外的无状态位置。