*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。