在 Redis 中,`SETNX` 命令用于将指定的键(key)设置为指定的值(value),当且仅当该键不存在时。具体来说,`SETNX` 是 "Set if Not eXists" 的缩写,它会在键不存在时设置键值对。
以下是 `SETNX` 命令的作用和特点:
1. 当指定的键已经存在时,`SETNX` 命令不会执行任何操作,也不会覆盖原有值。
2. 当指定的键不存在时,`SETNX` 命令会将该键设置为指定的值,并返回 `1` 表示设置成功。
3. 如果 SETNX 执行成功,返回 `1`;如果键已经存在,不执行任何操作,返回 `0`。
4. `SETNX` 命令通常用于实现分布式锁、防止缓存击穿等场景。
例如,以下是使用 `SETNX` 命令设置键值对的示例:
```bash
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`,不执行任何操作。