首页 > 编程笔记

Redis MSETNX命令的基本用法

Redis MSETNX 命令的基本语法如下:

MSETNX key value [key value ...]

MSETNX 用于设置一个或多个 key 的值,执行成功返回 OK,表示所有值都被设置了;执行失败返回 0,表示没有任何值被设置,不会覆盖已经存在的 key。

MSETNX 是原子性的,因此它可以用作设置多个不同的 key,表示不同字段(field)的唯一性逻辑对象(Unique Logic Object),所有字段要么全被设置,要么全不被设置。

返回值:如果所有 key 都成功设置,那么返回 1;如果所有 key 都设置失败(最少有一个 key 已经存在),那么返回 0。

实例1:对不存在的 key 执行 MSETNX 命令。
127.0.0.1:6379> MSETNX key1 "a" key2 "b"
OK
127.0.0.1:6379> GET key1
"a"
127.0.0.1:6379> GET key2
"b"

实例2:对已存在的 key 执行 MSETNX 命令。
127.0.0.1:6379> MSET key1 "a" key2 "b"
OK
127.0.0.1:6379> GET key1
"a"
127.0.0.1:6379> GET key2
"b"
127.0.0.1:6379> MSETNX key2 "new_b" key3 "c"   # key2已经存在,所以操作失败
(integer) 0
127.0.0.1:6379> EXISTS key3              # 因为命令是原子性的,所以key3没有被设置
(integer) 0
127.0.0.1:6379> MGET key1 key2 key3      # key2没有被修改
1) "a"
2) "b"
3) (nil)
127.0.0.1:6379> GET key3
(nil)

推荐阅读