JSON
Redis Stack 增加了对 Redis 数据库中 JSON 的支持。
Redis Stack 增加了对 Redis 数据库的 JSON 数据结构 的支持。
使用RedisJSON的源代码可用版本开发的应用程序与启用了JSON的Redis Enterprise数据库100%兼容。
JSON路径
Paths 允许您从根开始遍历JSON文档的结构,并仅与您想要的数据进行交互。您还可以使用路径对特定的JSON元素执行操作。
由于没有JSON路径语法的标准,Redis Stack实现了自己的语法。
JSONPath 语法
RedisJSON v2.0 及更高版本支持 JSONPath 语法,类似于 Goessner 的设计:
-
路径以美元符号(
$
)开头,表示JSON文档的根。 -
查看JSONPath语法表以了解如何访问JSON文档中的各种元素。
以下路径指向headphones
,它是根目录下inventory
的子项:
$.inventory.headphones
查看JSONPath示例以获取更复杂语法的示例。
旧版路径语法
legacy path syntax 指的是 RedisJSON v1 中的路径实现。RedisJSON v2 除了支持 JSONPath 语法外,仍然支持这种旧版路径语法。
旧版路径语法的工作方式如下:
-
一个句点字符代表根。
-
对于根节点的子节点的路径,可以选择在路径前加上一个句点作为前缀。
-
支持使用点符号和括号符号来访问JSON对象的键。
以下路径指向headphones
,它是根目录下inventory
的子项:
.inventory.headphones
inventory["headphones"]
['inventory']["headphones"]
键名规则
如果JSON键遵循以下名称语法规则,您只能使用旧版路径语法来访问它们:
- 键名必须以字母、美元符号(
$
)或下划线(_
)开头。 - 键名可以包含字母、数字、美元符号和下划线。
- 键名区分大小写。
索引和搜索JSON文档
您可以对存储的JSON文档进行索引、搜索和查询。
有关如何搜索和查询JSON文档的更多信息,请参阅快速入门。
JSON在Active-Active数据库中的应用
RedisJSON v2.2 及更高版本支持将 JSON 数据结构作为无冲突复制数据类型 (CRDT) 在 Active-Active Redis Enterprise 数据库中使用。
有关Redis Enterprise如何解决副本尝试同步时可能出现的JSON操作冲突的详细信息,请参阅JSON 冲突解决规则。