在 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`,不執行任何操作。