*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: 会占用少量元数据内存,但无元素数据内存。