【Redis Set命令】
SET key value [EX seconds] [PX milliseconds] [NX|XX]
將字符串值 value 關聯到 key 。
如果 key 已經持有其他值, SET 就覆寫舊值,無視類型。
對於某個原本帶有生存時間(TTL)的鍵來說, 當 SET 命令成功在這個鍵上執行時, 這個鍵原有的 TTL 將被清除。
可選參數
從 Redis 2.6.12 版本開始, SET 命令的行為可以通過一系列參數來修改:
EX second:設置鍵的過期時間為second秒。SET key value EX second效果等同於SETEX key second value。PX millisecond:設置鍵的過期時間為millisecond毫秒。SET key value PX millisecond效果等同於PSETEX key millisecondvalue。NX:只在鍵不存在時,才對鍵進行設置操作。SET key value NX效果等同於SETNX key value。XX:只在鍵已經存在時,才對鍵進行設置操作。
因為 SET 命令可以通過參數來實現和 SETNX 、 SETEX 和 PSETEX 三個命令的效果,所以將來的 Redis 版本可能會廢棄並最終移除 SETNX 、 SETEX 和 PSETEX 這三個命令。
返回值:
在 Redis 2.6.12 版本以前, SET 命令總是返回 OK 。
從 Redis 2.6.12 版本開始,
SET 在設置操作成功完成時,才返回
OK 。
如果設置了
NX 或者
XX ,但因為條件沒達到而造成設置操作未執行,那么命令返回空批量回復(NULL Bulk Reply)。
【使用模式】
命令 SET resource-name anystring NX EX max-lock-time 是一種在 Redis 中實現鎖的簡單方法。
客戶端執行以上的命令:
- 如果服務器返回
OK,那么這個客戶端獲得鎖。 - 如果服務器返回
NIL,那么客戶端獲取鎖失敗,可以在稍后再重試。
設置的過期時間到達之后,鎖將自動釋放。
參考:http://redisdoc.com/string/set.html
