set & get

1. 基本語法

(1) set

set(key , value, ['EX', seconds|'PX', milliseconds], ['NX'|'XX'],callback)

在Redis資料庫中設置一組名稱為key且對應值為valueString資料。設置成功則回傳OK,失敗則回傳空值。

若額外追加EX(或PX)參數數可為該key資料設置seconds秒(或milliseconds毫秒)的效期(expired time),抵達效期時間,則自動刪除該key資料。

若額外追加NX參數(Not Exist),在設置資料前會先判斷key名稱是否已經存在,key不存在才設置資料;相反的,XX參數(Exist),則是key存在才設置並覆蓋資料。

client.set("foo", "bar", redis.print);
Reply: OK

(2) get

get(key, callback)

取得key名稱對應的String資料,若key存在且為String資料,則回傳對應Value

key不存在,則回傳空值。若key存在但不是String資料,則回傳錯誤訊息。

client.set("foo", "bar", redis.print);
client.get("foo", (err, foo_value) => {
    console.log(foo_value); 
})
Reply: OK
bar

2. 範例

(1) 鎖定機制

透過NXEX參數實現將key資料鎖定(Lock),在鎖定後不予修改。

client.set("lock:foo", "bar", 'EX', 10, 'NX', redis.print);
client.get("lock:foo", redis.print)

client.set("lock:foo", "bar2", 'EX', 10, 'NX', redis.print);
client.get("lock:foo", redis.print)
Reply: OK
Reply: bar

Reply: null
Reply: bar

Last updated

Was this helpful?