dot Redis 8 来了——而且是开源的

了解更多

对象->哈希存储

返回词汇表

原生的 Redis 数据类型哈希(映射)乍一看似乎与 JSON 对象或其他记录数据类型非常相似。 实际上,它要简单得多,只允许每个字段是字符串或数字,而不允许子字段。 但是,通过预先计算每个字段的“路径”,您可以展平对象并将其存储在 Redis 哈希映射中。

以下面的例子为例

{
    "colour":"blue",
    "make":"saab",
    "model":{
       "trim" : "aero",
       "name" : 93
    },
    "features":[ "powerlocks", "moonroof" ]
}

使用 JSONPath,我们可以使用哈希映射在一层中表示每个项目。

> HSET car3 colour blue
> HSET car3 make saab
> HSET car3 model.trim aero
> HSET car3 model.name 93
> HSET car3 features[0] powerlocks
> HSET car3 features[1] moonroof

(为了清晰起见,显示为单独的命令,在脚本中,您将需要可变地使用 HSET)

这提供了一种获取整个对象的方法

> HGETALL car3
 1) "colour"
 2) "blue"
 3) "make"
 4) "saab"
 5) "model.trim"
 6) "aero"
 7) "model.name"
 8) "93"
 9) "features[0]"
10) "powerlocks"
11) "features[1]"
12) "moonroof"

或对象的各个部分

> HGET car3 model.trim
"aero"

虽然这可以提供一种快速、有用的方法来访问 Redis 中的存储对象,但它也存在缺点

此模式与 ReJSON 有显着重叠。 如果 ReJSON 可用,它通常是更好的选择。 以这种方式存储对象与 ReJSON 相比,有一个优点是它与另一个 Redis 命令集成: SORT。 但是,SORT 命令既是一个复杂的主题(超出此模式的范围),也是计算上复杂的,如果管理不当,可能会以无法很好地扩展的方式使用。