从 Redis 2.6.12 版本开始,此命令被标记为已废弃
在迁移或编写新的代码时,可以使用带有 NX 参数的 SET 命令替代。

语法

1
SETNX key value

可用版本

≥ 1.0.0

时间复杂度

$O(1)$

ACL类别

@write, @string, @fast

如果 key 不存在,则将 key 设置为保存字符串值。在这种情况下,它等于 SET。当 key 已经存在时,则不执行任何操作。

SETNX 是 “SET if Not eXists” 的缩写。

返回值

返回一个整数:

  • 如果 key 被成功设置,则返回 1;
  • 如果 key 没被设置,则返回 0

示例

1
2
3
4
5
6
redis> SETNX john "JOHNSON"
(integer) 1
redis> SETNX john "JOHNSON LIN"
(integer) 0
redis> GET john
"JOHNSON"

(END)