*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: 可以,数组会被清空为空数组 []。