*Redis ARMSET 命令
ARMSET 同时设置多个数组键的值。
*语法
ARMSET key element [element ...] [key element [element ...] ...]
*参数说明
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| key | String | 是 | 数组键名 |
| element | String / Bytes | 是 | 元素值,每个 key 后可跟多个 |
*返回值
- OK:全部设置成功
- Error:参数不成对、内存不足等
*时间复杂度
O(N),N 为所有设置的元素总数。
*示例
*设置两个数组
> ARMSET colors "red" "green" sizes "S" "M" "L"
OK
> ARGET colors
1) "red"
2) "green"
> ARGET sizes
1) "S"
2) "M"
3) "L"
*批量初始化
> ARMSET queue:1 "task1" "task2" queue:2 "task3"
OK
*常见错误
| 错误 | 原因 | 解决 |
|---|---|---|
| ERR wrong number of arguments | key 后没有 element | 确保每个 key 至少有一个元素 |
*最佳实践
- 批量初始化多个数组,减少网络往返
- 原子性操作,要么全部成功,要么全部失败
- 大数组初始化建议分批进行
*FAQ
Q1: ARMSET 和多次 ARSET 的区别? A: ARMSET 单次往返原子性设置多个数组;多次 ARSET 需要多次往返。
Q2: 如果某个 key 已存在且不是 Array 会怎样? A: 会覆盖为 Array 类型,原有数据丢失。
Q3: 可以设置空数组吗? A: 不可以,每个 key 后必须至少提供一个 element。