*Redis JSON.CLEAR 命令
JSON.CLEAR 在 RedisJSON 中清除指定路径的值,将容器(对象或数组)置为空,或标量置为默认值。
*语法
JSON.CLEAR key [path]
*参数说明
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| key | String | 是 | JSON 文档键名 |
| path | String | 否 | JSONPath 路径,默认根路径 $ |
*返回值
- Integer:被清除的元素数量
*时间复杂度
O(N),N 为清除的元素数量
*示例
*清除对象
> JSON.SET doc $ '{"a": 1, "b": {"c": 2}}'
OK
> JSON.CLEAR doc $.b
(integer) 1
> JSON.GET doc
"{\"a\":1,\"b\":{}}"
*清除整个文档
> JSON.CLEAR doc
(integer) 2
> JSON.GET doc
"{}"
*常见错误
| 错误 | 原因 | 解决 |
|---|---|---|
| ERR path does not exist | 路径不存在 | 确认路径正确 |
*最佳实践
- 快速清空 JSON 对象的属性
- 用于重置数据结构而不删除 key
- 配合 JSONPath 精确定位要清除的部分
*FAQ
Q1: 清除标量会怎样? A: 标量会被设置为默认值(如数字为 0,字符串为 "")。
Q2: 和 JSON.DEL 有什么区别? A: JSON.CLEAR 清空内容保留结构;JSON.DEL 删除路径。
Q3: 可以清除数组吗? A: 可以,数组会被清空为空数组 []。