*Redis JSON.DEL 命令

JSON.DEL 在 RedisJSON 中删除指定路径的值。如果路径是根路径,则删除整个 key。


*语法

JSON.DEL key [path]

*参数说明

参数 类型 必填 说明
key String JSON 文档键名
path String JSONPath 路径,默认根路径 $

*返回值

  • Integer:删除的元素数量

*时间复杂度

O(N),N 为删除的元素数量


*示例

*删除路径

> JSON.SET doc $ '{"a": 1, "b": {"c": 2}}'
OK
> JSON.DEL doc $.b
(integer) 1
> JSON.GET doc
"{\"a\":1}"

*删除整个文档

> JSON.DEL doc
(integer) 1
> EXISTS doc
(integer) 0

*常见错误

错误 原因 解决
ERR key does not exist key 不存在 确认 key 存在

*最佳实践

  • 使用 JSONPath 精确定位要删除的部分
  • 删除整个 key 时无需指定路径
  • 注意删除操作的 O(N) 复杂度

*FAQ

Q1: JSON.DEL 和 JSON.FORGET 有什么区别? A: 两者功能相同,JSON.FORGET 是别名。

Q2: 删除不存在的路径会怎样? A: 返回 0。

Q3: 可以删除数组中的元素吗? A: 可以,通过指定数组元素路径删除。