我试图使用redis-objects Ruby gem将一些Redis数据存储在列表中。
我可以按照文档中的example创建一个列表。
我可以使用lrange从Redis中找到列表。不确定这是否是最好的方法,我无法找到redis-objects提供的方法。
最初,当我迭代列表中的元素时,我得到了哈希形式的元素。
然而,在我使用lrange获取列表后,这些不是哈希,我无法访问数据。
找到列表并以散列形式获取项目的适当方法是什么?
您可以看到下面的代码和控制台的输出。
- (void) update:(CCTime)delta{
CCGLView *ccglView = (CCGLView *)[[CCDirector sharedDirector] view];
[EAGLContext setCurrentContext:ccglView.context];
}
每个看跌期权:
@list = Redis::List.new('list_name', :marshal => true)
@list << {:name => "Nate", :city => "San Diego"}
@list.each do |el|
puts el
puts el.class
puts "#{el[:name]} lives in #{el[:city]}"
end
redis = Redis.current
@list = redis.lrange("list_name", 0, -1)
@list.each do |el|
puts el
puts el.class
puts "#{el[:name]} lives in #{el[:city]}"
end
答案 0 :(得分:0)
右。 Gem文档中的下面的文字解释了它!
有一个Ruby类映射到每个Redis类型,方法有 每个Redis API命令。 请注意,调用new并不意味着它 实际上是一个新的&#34; value - 它只是在Ruby之间创建一个映射 对象和相应的Redis数据结构,可能已经存在 存在于redis-server上。
所以我不需要使用lrange来到列表中。使用Redis::List.new('list_name', :marshal => true)
将获得列表的句柄。然后我可以迭代,添加或删除列表中的项目。
阅读很有帮助......