在 Redis 中,SETNX
命令用于将指定的键(key)设置为指定的值(value),当且仅当该键不存在时。具体来说,SETNX
是 “Set if Not eXists” 的缩写,它会在键不存在时设置键值对。
以下是 SETNX
命令的作用和特点:
- 当指定的键已经存在时,
SETNX
命令不会执行任何操作,也不会覆盖原有值。 - 当指定的键不存在时,
SETNX
命令会将该键设置为指定的值,并返回1
表示设置成功。 - 如果 SETNX 执行成功,返回
1
;如果键已经存在,不执行任何操作,返回0
。 SETNX
命令通常用于实现分布式锁、防止缓存击穿等场景。
例如,以下是使用 SETNX
命令设置键值对的示例:
127.0.0.1:6379> SETNX mykey "Hello"
(integer) 1
127.0.0.1:6379> GET mykey
"Hello"
127.0.0.1:6379> SETNX mykey "World"
(integer) 0
127.0.0.1:6379> GET mykey
"Hello"
在上面的示例中,首先使用 SETNX
命令将键 mykey
设置为值 "Hello"
,因为该键之前不存在,所以返回 1
表示设置成功。然后再次尝试使用 SETNX
命令将同样的键设置为值 "World"
,由于键 mykey
已经存在,所以返回 0
,不执行任何操作。