*Redis ARGET 命令
ARGET 返回数组中所有元素。
*语法
ARGET key
*参数说明
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| key | String | 是 | 数组键名 |
*返回值
- Array:数组中的所有元素列表
- Empty array:数组为空
- Nil:key 不存在
- Error:key 存储的不是 Array 类型
*时间复杂度
O(N),N 为数组元素数量。
*示例
*获取完整数组
> ARSET fruits "apple" "banana" "cherry"
OK
> ARGET fruits
1) "apple"
2) "banana"
3) "cherry"
*空数组
> ARSET empty
OK
> ARGET empty
(empty array)
*不存在的 key
> ARGET notexist
(nil)
*常见错误
| 错误 | 原因 | 解决 |
|---|---|---|
| WRONGTYPE | key 不是 Array 类型 | 确认 key 的数据类型 |
*最佳实践
- 大数组避免直接用 ARGET,改用 ARGETRANGE 分页获取
- 配合 ARSCAN 做流式读取,减少内存峰值
- 需要单个元素时考虑 ARGETRANGE key index index
*FAQ
Q1: ARGET 和 ARGETRANGE 有什么区别? A: ARGET 返回全部元素;ARGETRANGE 返回指定索引范围的子数组。
Q2: 数组最大能存多少元素? A: 取决于可用内存,但建议单个数组不超过 10 万元素以保证性能。
Q3: ARGET 返回元素的顺序是怎样的? A: 按索引 0 到 N-1 的顺序返回,与插入/设置顺序一致。