JSON
提示
来自deepseek解释
原文链接:https://redis.io/docs/latest/develop/data-types/json/
代码示例图例
下面的代码示例展示了如何在不同编程语言和客户端库中执行相同的操作:
- Redis CLI:Redis 命令行界面
- C#(同步):StackExchange.Redis 同步客户端
- C#(异步):StackExchange.Redis 异步客户端
- Go:go-redis 客户端
- Java(同步 - Jedis):Jedis 同步客户端
- Java(异步 - Lettuce):Lettuce 异步客户端
- Java(响应式 - Lettuce):Lettuce 响应式/流式客户端
- JavaScript(Node.js):node-redis 客户端
- PHP:Predis 客户端
- Python:redis-py 客户端
- Rust(同步):redis-rs 同步客户端
- Rust(异步):redis-rs 异步客户端
每个代码示例都演示了不同语言中相同的基本操作。具体语法和模式因语言和客户端库而异,但底层的 Redis 命令和行为保持一致。
JSON 命令摘要
本组共 26 条命令:
| 命令 | 摘要 | 复杂度 | 起始版本 |
|---|---|---|---|
| JSON.ARRAPPEND | 在路径处数组的最后一个元素之后追加一个或多个 JSON 值。 | 当路径求值为单个值时 O(1)... | 1.0.0 |
| JSON.ARRINDEX | 返回路径处数组中首次出现 JSON 标量值的索引 | 当路径求值为单个值时 O(N)... | 1.0.0 |
| JSON.ARRINSERT | 在路径处数组的指定索引处插入 JSON 标量值 | 当路径求值为单个值时 O(N)... | 1.0.0 |
| JSON.ARRLEN | 返回路径处数组的长度 | 当路径求值为单个值时 O(1)... | 1.0.0 |
| JSON.ARRPOP | 移除并返回路径处数组中指定索引处的元素 | 当路径求值为单个值时 O(N)... | 1.0.0 |
| JSON.ARRTRIM | 将路径处数组修剪为仅包含从 start 到 stop 的指定包含范围索引 | 当路径求值为单个值时 O(N)... | 1.0.0 |
| JSON.CLEAR | 清除数组或对象中的所有值,并将数值设置为 0 | 当路径求值为单个值时 O(N)... | 2.0.0 |
| JSON.DEBUG | 调试容器命令 | 不适用 | 1.0.0 |
| JSON.DEBUG HELP | 显示帮助信息 | 不适用 | 1.0.0 |
| JSON.DEBUG MEMORY | 报告键的字节大小 | 当路径求值为单个值时 O(N)... | 1.0.0 |
JSON 命令摘要(第 2 部分)
| 命令 | 摘要 | 复杂度 | 起始版本 |
|---|---|---|---|
| JSON.DEL | 删除一个值 | 当路径求值为单个值时 O(N)... | 1.0.0 |
| JSON.FORGET | 删除一个值 | 当路径求值为单个值时 O(N)... | 1.0.0 |
| JSON.GET | 以 JSON 序列化形式获取一个或多个路径处的值 | 当路径求值为单个值时 O(N)... | 1.0.0 |
| JSON.MERGE | 将给定的 JSON 值合并到匹配的路径中。因此,匹配路径处的 JSON 值会被更新、删除或扩展新的子元素 | 当路径求值为单个值时 O(M+N)... | 2.6.0 |
| JSON.MGET | 从一个或多个键的路径处返回值 | 当路径求值为单个值时 O(M*N)... | 1.0.0 |
| JSON.MSET | 设置或更新一个或多个键的 JSON 值 | O(K*(M+N)),其中 k 是键的数量... | 2.6.0 |
| JSON.NUMINCRBY | 将路径处的数值增加一个值 | 当路径求值为单个值时 O(1)... | 1.0.0 |
| JSON.NUMMULTBY | 将路径处的数值乘以一个值 | 当路径求值为单个值时 O(1)... | 1.0.0 |
| JSON.OBJKEYS | 返回路径处对象的 JSON 键 | 当路径求值为单个值时 O(N)... | 1.0.0 |
| JSON.OBJLEN | 返回路径处对象的键数 | 当路径求值为单个值时 O(1)... | 1.0.0 |
JSON 命令摘要(第 3 部分)
| 命令 | 摘要 | 复杂度 | 起始版本 |
|---|---|---|---|
| JSON.RESP | 以 Redis 序列化协议(RESP)返回路径处的 JSON 值 | 当路径求值为单个值时 O(N)... | 1.0.0 |
| JSON.SET | 设置或更新路径处的 JSON 值 | 当路径求值为单个值时 O(M+N)... | 1.0.0 |
| JSON.STRAPPEND | 在路径处追加字符串到 JSON 字符串值 | 当路径求值为单个值时 O(1)... | 1.0.0 |
| JSON.STRLEN | 返回键中路径处 JSON 字符串的长度 | 当路径求值为单个值时 O(1)... | 1.0.0 |
| JSON.TOGGLE | 切换布尔值 | 当路径求值为单个值时 O(1)... | 2.0.0 |
| JSON.TYPE | 返回路径处 JSON 值的类型 | 当路径求值为单个值时 O(1)... | 1.0.0 |
Redis Open Source 的 JSON 能力为 Redis 提供了 JavaScript 对象表示法(JSON)支持。它允许您在 Redis 数据库中存储、更新和检索 JSON 值,类似于其他 Redis 数据类型。Redis JSON 还能与 Redis Search 无缝协作,让您能够索引和查询 JSON 文档。
主要特性
- 完全支持 JSON 标准
- 使用 JSONPath 语法选择/更新文档中的元素(参见 JSONPath 语法)
- 文档以树形结构存储为二进制数据,支持快速访问子元素
- 对所有 JSON 值类型提供类型化的原子操作