*Redis ARSET 命令
ARSET 设置数组键的值,替换整个数组或初始化新数组。
*语法
ARSET key element [element ...]
*参数说明
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| key | String | 是 | 数组键名 |
| element | String / Bytes | 条件 | 元素值,支持多个;不提供则设置为空数组 |
*返回值
- OK:设置成功
- Error:内存不足等
*时间复杂度
O(N),N 为元素数量(需要创建/替换整个数组)。
*示例
*设置数组
> ARSET fruits "apple" "banana" "cherry"
OK
> ARGET fruits
1) "apple"
2) "banana"
3) "cherry"
*替换已有数组
> ARSET fruits "orange" "grape"
OK
> ARGET fruits
1) "orange"
2) "grape"
*设置空数组
> ARSET empty
OK
> ARLEN empty
(integer) 0
*常见错误
| 错误 | 原因 | 解决 |
|---|---|---|
| ERR wrong number of arguments | 语法错误 | 检查参数格式 |
| OOM command not allowed | 内存不足 | 检查内存配置或大 value |
*最佳实践
- 数组初始化的首选命令
- 会完全替换已有数组,注意数据覆盖风险
- 大数组操作可能阻塞,评估元素数量和大小
*FAQ
Q1: ARSET 和 ARINSERT 有什么区别? A: ARSET 替换整个数组;ARINSERT 在指定位置插入,保留原有元素。
Q2: ARSET 会覆盖其他类型的 key 吗? A: 会,ARSET 会删除原有 key 并创建 Array 类型。
Q3: 空数组会占用内存吗? A: 会占用少量元数据内存,但无元素数据内存。