*Redis MSETNX 命令 仅当所有 key 不存在时才同时设置
*语法
MSETNX key value [key value ...]
*说明
MSETNX(Multi SET if Not eXists)仅当所有给定 key 都不存在时,才一次性设置多个 key-value。
- 原子性操作:所有 key 要么全部设置成功,要么全部不设置。
- 即使只有一个 key 已存在,整个操作也会被拒绝。
- 适合设置逻辑对象的多个属性,确保要么全成功,要么全失败。
*返回值
Integer reply:
1:所有 key 设置成功。0:某个 key 已存在,未执行任何设置。
*时间复杂度
O(N),其中 N 为设置的 key 数量。
*版本兼容性
| Redis 版本 | 说明 |
|---|---|
| >= 1.0.1 | MSETNX 可用 |
*示例
# 所有 key 都不存在,设置成功
MSETNX key1 "Hello" key2 "there"
MGET key1 key2
# key2 已存在,设置失败
MSETNX key2 "new" key3 "world"
MGET key1 key2 key3
# 设置对象属性(原子性)
MSETNX user:100:name "Alice" user:100:age "30"
MGET user:100:name user:100:age