要獲取鎖鹅很,要走的路如下:
SET resource_name my_random_value NX PX 30000
僅當(dāng)密鑰尚不存在時,該命令才會設(shè)置密鑰(選項(xiàng)),過期時間為 30000 毫秒(選項(xiàng))玛追。該鍵設(shè)置為值“my_random_value”。此值在所有客戶端和所有鎖定請求中必須是唯一的。NXPX
基本上痊剖,使用隨機(jī)值是為了以安全的方式釋放鎖韩玩,并使用一個腳本告訴Redis:僅當(dāng)密鑰存在并且存儲在密鑰處的值與我期望的值完全相同時,才將其刪除陆馁。這是通過以下 Lua 腳本完成的:
if redis.call("get",KEYS[1]) == ARGV[1] then
return redis.call("del",KEYS[1])
else
return 0
end