1. MSETNX key value [key value ...]

同时设置一个或多个 key-value 对,当且仅当所有给定 key 都不存在。

即使只有一个给定 key 已存在, MSETNX 也会拒绝执行所有给定 key 的设置操作。

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

1.1. 起始版本:

1.0.0

1.2. 时间复杂度:

O(N), N 为要设置的 key 数量。

1.3. 返回值:

当所有 key 都成功设置,返回 1 。 如果所有给定 key 都设置失败(至少有一个 key 已经存在),那么返回 0 。

1.4. 案例

127.0.0.1:6379> FLUSHDB
OK

# 对不存在的 key 进行 MSETNX
127.0.0.1:6379> MSETNX key1 value1 key2 value2 key3 value3
(integer) 1
127.0.0.1:6379> mget key1 key2 key3
1) "value1"
2) "value2"
3) "value3"

# MSET 的给定 key 当中有已存在的 key
127.0.0.1:6379> MSETNX key1 new-value1 key4 value4  # key1 已存在, 所以此命令整体失败, key4也失败
(integer) 0
127.0.0.1:6379> mget key1 key2 key3 key4
1) "value1"
2) "value2"
3) "value3"
4) (nil)
Copyright © wychuan.com 2017 all right reserved,powered by Gitbook该文件修订时间: 2017-10-17 02:48:52

results matching ""

    No results matching ""