教程 > Redis教程 > Redis 命令 阅读:17

Redis MSETNX 命令

Redis MSETNX 命令

返回 Redis字符串(string)


当且仅当所有给定键都不存在时, 为所有给定键设置值。

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

MSETNX 是一个原子性(atomic)操作, 所有给定键要么就全部都被设置, 要么就全部都不设置。

MSETNX 可以用来设置逻辑对象的属性,来确保要么都设置,要么都不设置。

语法

redis Msetnx 命令基本语法如下:

redis 127.0.0.1:6379> MSETNX key1 value1 key2 value2 .. keyN valueN 

可用版本

>= 1.0.1

返回值

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

示例

# 对不存在的 key 进行 MSETNX
redis 127.0.0.1:6379> MSETNX rmdbs "MySQL" nosql "MongoDB" key-value-store "redis"
(integer) 1
redis 127.0.0.1:6379> MGET rmdbs nosql key-value-store
1) "MySQL"
2) "MongoDB"
3) "redis"

# MSET 的给定 key 当中有已存在的 key
redis 127.0.0.1:6379> MSETNX rmdbs "Sqlite" language "python"  # rmdbs 键已经存在,操作失败
(integer) 0
redis 127.0.0.1:6379> EXISTS language                          # 因为 MSET 是原子性操作,language 没有被设置
(integer) 0
redis 127.0.0.1:6379> GET rmdbs                                # rmdbs 也没有被修改
"MySQL"

时间复杂度

MSETNX 命令时间复杂度: O(N) 其中N为要设置的key的个数。

返回 Redis字符串(string)

查看笔记

扫码一下
查看教程更方便