*Redis JSON.DEBUG 命令

JSON.DEBUG 是 RedisJSON 的调试命令组,用于获取 JSON 文档的内存使用和其他调试信息。


*语法

JSON.DEBUG MEMORY key [path]
JSON.DEBUG HELP

*参数说明

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

*返回值

  • JSON.DEBUG MEMORY: 内存使用量(字节,Integer)
  • JSON.DEBUG HELP: 帮助信息数组

*时间复杂度

O(N),N 为 JSON 文档大小


*示例

*查看内存使用

> JSON.SET doc $ '{"a": 1, "b": "hello"}'
OK
> JSON.DEBUG MEMORY doc
(integer) 72
> JSON.DEBUG MEMORY doc $.b
(integer) 16

*获取帮助

> JSON.DEBUG HELP
1) "MEMORY <key> [path] - reports memory usage in bytes"

*常见错误

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

*最佳实践

  • 用于监控 JSON 文档的内存占用
  • 分析内存使用优化数据结构
  • 配合 JSONPath 查看子路径的内存占用

*FAQ

Q1: 返回的是精确值吗? A: 返回的是 RedisJSON 内部结构的内存使用近似值。

Q2: 和 MEMORY USAGE 有什么区别? A: JSON.DEBUG MEMORY 针对 JSON 文档内部结构;MEMORY USAGE 返回整个 key 的内存。

Q3: 可以查看路径不存在的情况吗? A: 路径不存在会返回 0。