在 Redis 中将数组设置为哈希值



我正在使用ruby的redis,我想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"] } }

那么执行这个动作的正确方法是什么呢?

不能100%确定这就是使那个方法生气的原因,但它确实看起来像你在以一种它不允许的方式使用它。来自Redis gem文档:

Redis只存储字符串作为值。如果你想存储一个对象,你可以使用序列化机制,如JSON…

因此,尝试存储array.to_json,并使用JSON.parse(obj)再次获得它。

最新更新