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