redis死鎖解決原理?
一、 Redis分布式鎖實現原理
SETNX key value //如果key不存在,則創建并賦值 EXPIRE key seconds //設置key的生存時間,當key過期(生存時間為0),會自動刪除存在風險:SETNX和EXPIRE 為兩個指令,如果設置了SETNX后程序崩潰,EXPIRE未成功執行則會出現資源鎖死的情況。二、針對該問題,redis 在2.6.12版本過后增加新的解決方案set key value [expiration EX seconds|PX milliseconds] [NX|XX]
EX seconds:將鍵的過期時間設置為 seconds 秒。 SET key value EX seconds 等同于 SETEX key seconds valuePX millisecounds:將鍵的過期時間設置為 milliseconds 毫秒。 SET key value PX milliseconds 等同于 PSETEX key milliseconds valueNX:只在鍵不存在的時候,才對鍵進行設置操作。 SET key value NX 等同于 SETNX key valueXX:只在鍵已經存在的時候,才對鍵進行設置操作三、例子set name zhangsan EX 10 NX
當 "name" 不存在時進行設置,同時設置超時時間為10s(將SETNX和EXPIRE合二為一)SET操作成功后,返回的是OK,失敗返回NIL上一篇公務郵郵件怎么加密發送
下一篇Pro16寸怎么選配置