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