出于显而易见的原因,我想使用 Redis 而不是我的会话。
旧国家代码:
session[:some_stuff] = @my_objects.map(&:id)
然后稍后:
session[:some_stuff].each{|obj| ..
或者,
我想将这个 id 映射存储到 redis 中。然后检索它们。我在其他网络资源上找不到任何相关的东西。有任何想法吗?
出于显而易见的原因,我想使用 Redis 而不是我的会话。
旧国家代码:
session[:some_stuff] = @my_objects.map(&:id)
然后稍后:
session[:some_stuff].each{|obj| ..
或者,
我想将这个 id 映射存储到 redis 中。然后检索它们。我在其他网络资源上找不到任何相关的东西。有任何想法吗?
您还没有写过如何设置 Redis 连接/适配器,但它基本上SADD
是用于将元素添加到 Redis 集并SMEMBERS
检索所有元素。
我尝试使用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 架构之外的无状态位置。