Redis中setnx的使用

2022-09-14 08:12:11 字數 667 閱讀 9179

setnx是「set if not exists」的縮寫,只有不存在的時候才設定,可以利用它來實現鎖的效果。

setnx key value

若給定的 key 已經存在,則 setnx 不做任何動作。

set命令可用選項的基本語法

set key value [ex seconds] [px milliseconds] [nx|xx]

到期時間(以秒為單位)

到期時間(以毫秒為單位)

僅在鍵不存在時設定鍵

只有在鍵已存在時才設定

set mykey 「redis」 ex 60 nx

在鍵「mykey」不存在時,設定鍵的值為「redis」,到期時間為60秒。

@override

public boolean setnx(string key,string value, long time) ;

string result = redistemplate.execute(callback);

return !stringutils.isempty(result);

} catch (exception e)

return false;

}

參考:

使用 Redis的SETNX命令實現分布式鎖

使用redis的 setnx 命令可以實現分布式鎖,下文介紹其實現方法。setnx key value 將 key 的值設為 value,當且僅當 key 不存在。若給定的 key 已經存在,則 setnx 不做任何動作。setnx 是set if not exists的簡寫。返回整數,具體為 1,...

正確地使用Redis的SETNX實現鎖機制

setnx,是set if not exists 的縮寫,也就是只有不存在的時候才設定,設定成功時返回 1 設定失敗時返回 0 可以利用它來實現鎖的效果,但是很多人在使用的過程中都有一些問題沒有考慮到。例如某個查詢資料庫的介面因為請求量比較大所以加了快取,並設定快取過期後重新整理。當併發量比較大並且...

正確地使用Redis的SETNX實現鎖機制

setnx,是set if not exists 的縮寫,也就是只有不存在的時候才設定,設定成功時返回 1 設定失敗時返回 0 可以利用它來實現鎖的效果,但是很多人在使用的過程中都有一些問題沒有考慮到。例如某個查詢資料庫的介面因為請求量比較大所以加了快取,並設定快取過期後重新整理。當併發量比較大並且...