Lee*_*Lee 27 redis ruby-on-rails-3
我刚刚开始使用Redis with Rails,所以这可能是一个愚蠢的问题.
我试图将哈希值保存到redis服务器但是当我检索它时它只是一个字符串IE.
hash = {"field" => "value", "field2" => "value2"}
$redis.set('data', hash)
#So collecting the data
@data = $redis.get('data')
Run Code Online (Sandbox Code Playgroud)
这显然是错误的,因为它作为一个字符串返回.
我也试过循环一些结果并使用hset即.
@data.each do |d|
$redis.hset('data', d.field, d.value)
end
# errror
# ERR Operation against a key holding the wrong kind of value
Run Code Online (Sandbox Code Playgroud)
不知道去哪里.我删除了密钥$ redis.del('data')以确保不是问题.
希望你能指教,李
Lee*_*Lee 55
我应该更全面地阅读redis文档.
回答:
IN
$redis.set 'data', hash.to_json
OUT
data = JSON.parse($redis.get("data"))
Run Code Online (Sandbox Code Playgroud)
小智 47
redis gem会像这样重新映射你的哈希:
$redis.mapped_hmset "test", { foo: "bar" }
$redis.hgetall "test" => {"foo"=>"bar"}
Run Code Online (Sandbox Code Playgroud)
小智 10
为了在redis中保存哈希.您必须将密钥作为第一个参数传递,然后下一个参数必须是hmset方法上的键和值.
$redis.hmset('user:007', :name, 'Antonio', :busy, 'maybe', :ping, 'pong')
Run Code Online (Sandbox Code Playgroud)
快乐的编码.