您当前的位置: 首页 > 慢生活 > 程序人生 网站首页程序人生
Redis的Msetnx 命令
发布时间:2021-10-30 12:08:06编辑:雪饮阅读()
与mset命令不同,mset命令对指定的一些key设置的时候,如果这些key中有某个key已经存在,则也会覆盖这个已经存在的key。
而msetnx则不会,msetnx原子性要求只要有一个key存在,则msetnx都执行不成功。
mset无论key是否存在,若存在就覆盖,msetnx在有存在的key时候就执行不成功:
127.0.0.1:6379> keys *
1) "key7"
2) "key6"
3) "key3"
4) "key9"
5) "key2"
6) "key4"
7) "key8"
8) "key12"
9) "key5"
10) "key1"
127.0.0.1:6379> mset key2 val2 key6 val6 key8 val8 key9 val9
OK
127.0.0.1:6379> set key2 val22
OK
127.0.0.1:6379> mset key2 val2 key6 val6 key8 val8 key9 val9
OK
127.0.0.1:6379> get key2
"val2"
127.0.0.1:6379> msetnx key2 val2 key6 val6 key8 val8 key9 val9
(integer) 0
127.0.0.1:6379> msetnx key2 val2 key6 val6 key8 val8 key9 val9 key10 val10
(integer) 0
127.0.0.1:6379> get key10
(nil)
只有key都不存在时候msetnx才能执行成功:
127.0.0.1:6379> msetnx key10 val10 key11 val11
(integer) 1
127.0.0.1:6379> get key10
"val10"
127.0.0.1:6379> get key11
"val11"
关键字词:Redis,Msetnx
上一篇:Redis的Mset 命令
下一篇:Redis 的Psetex 命令