MSETNX
仅当所有键都不存在时,才以原子方式修改一个或多个键的字符串值。
语法
MSETNX key value [key value ...]
引入版本:1.0.1
复杂度摘要:O(N)
[!NOTE] 此命令的行为在集群 Redis 环境中有所不同。请参阅 多键操作 页面了解更多信息。
将给定的键设置为其各自的值。即使只有一个键已经存在,MSETNX 也不会执行任何操作。
由于这种语义,可以使用 MSETNX 来设置代表唯一逻辑对象的不同字段的不同键,从而确保设置所有字段或根本不设置字段。
MSETNX 是原子的,因此所有给定的键都会立即设置。客户端不可能看到某些键已更新而其他键未更改。
必需参数
key value [key value ...]
设置一个或多个键值对。如果其中任何键已存在,则不会设置任何键。
示例
redis> MSETNX key1 "Hello" key2 "there"
(integer) 1
redis> MSETNX key2 "new" key3 "world"
(integer) 0
redis> MGET key1 key2 key3
1) "Hello"
2) "there"
3) (nil)
Redis Software 与 Redis Cloud 兼容性
| Redis 软件 |
Redis Cloud |
说明 |
|---|---|---|
| ✅ 标准 |
✅ 标准 |
返回值
RESP2
以下之一: * 整数回复:如果未设置键,则为 0(至少一个键已存在)。 * 整数回复: 1(如果所有键均已设置)。
RESP3
资料来源:Redis 官方 MSETNX 文档;中文内容参考 Redis 文档许可。