*Redis ARINFO 命令
ARINFO 返回数组键的元数据信息。
*语法
ARINFO key
*参数说明
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| key | String | 是 | 数组键名 |
*返回值
- Array:包含以下字段的列表
length:数组长度encoding:内部编码(如ziplist、quicklist)memory:近似内存占用(字节)accessed:最后访问时间戳modified:最后修改时间戳
- Nil:key 不存在
- Error:key 存储的不是 Array 类型
*时间复杂度
O(1)
*
*示例
*查看数组信息
> ARSET tags "redis" "database" "cache"
OK
> ARINFO tags
1) "length"
2) "3"
3) "encoding"
4) "quicklist"
5) "memory"
6) "96"
7) "accessed"
8) "1717459200"
9) "modified"
10) "1717459200"
*不存在的 key
> ARINFO notexist
(nil)
*常见错误
| 错误 | 原因 | 解决 |
|---|---|---|
| WRONGTYPE | key 不是 Array 类型 | 确认 key 的数据类型 |
*最佳实践
- 排查大数组问题时先用 ARINFO 确认长度和内存占用
- 监控
memory字段排查内存异常增长 - 配合 OBJECT ENCODING 和 MEMORY USAGE 做深度分析
*FAQ
Q1: ARINFO 和 DEBUG OBJECT 有什么区别? A: ARINFO 是 Array 类型专用,输出格式更友好;DEBUG OBJECT 更底层,信息更详细。
Q2: memory 字段精确吗?
A: 是近似值,用于快速评估,精确内存分析请用 MEMORY USAGE key SAMPLES。
Q3: 能看到元素的平均大小吗? A: ARINFO 不直接提供,可通过 memory / length 估算平均值。