*Redis JSON.ARRLEN 命令
JSON.ARRLEN 在 RedisJSON 中获取指定路径数组的长度。
*语法
JSON.ARRLEN key [path]
*参数说明
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| key | String | 是 | JSON 文档键名 |
| path | String | 否 | JSONPath 路径,默认根路径 $ |
*返回值
- Integer:数组长度
- Error:路径不存在或目标不是数组
*时间复杂度
O(1)
*
*示例
*基本用法
> JSON.SET doc $ '{"arr": [1, 2, 3]}'
OK
> JSON.ARRLEN doc $.arr
(integer) 3
> JSON.ARRLEN doc
(integer) 1
*常见错误
| 错误 | 原因 | 解决 |
|---|---|---|
| ERR path does not exist | 路径不存在 | 确认路径正确 |
| ERR path not an array | 目标不是数组 | 确认路径指向数组 |
*最佳实践
- 快速获取数组大小,无需读取整个数组
- 配合 JSON.ARRAPPEND 确认追加后的长度
- 用于分页计算
*FAQ
Q1: 路径不指定会怎样? A: 默认检查根路径是否为数组,如果是返回 1。
Q2: 空数组返回什么? A: 返回 0。
Q3: 可以获取多维数组的长度吗? A: 可以,通过 JSONPath 定位到具体数组。