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