我使用redis和ruby,我喜欢redis来制作一个散列,其中值是一个数组。但是,数组是键的值,它是另一个键的值(很快 - 另一个哈希中的哈希)。
arr = ["this", "is", "an", "array"]
r = Redis.new
r.hset("super_key", "key", arr)
这给了我错误:ERR wrong number of arguments for 'hset' command
。
我希望散列看起来像这样:
{ "super_key" => { "key" => ["this", "is", "an", "array"] } }
那么执行此操作的正确方法是什么?
答案 0 :(得分:2)
不是100%肯定这是让这种方法生气的原因,但它确实看起来像是以一种它不允许的方式使用它。来自the Redis gem documentation:
Redis仅将字符串存储为值。如果要存储对象,可以使用序列化机制,如JSON ...
因此,请尝试存储array.to_json
,并使用JSON.parse(obj)
将其重新恢复。