redisson分布式鎖的配置

2021-08-20 07:37:36 字數 2634 閱讀 5963

1.介面

public inte***ce distributedlocker
2.實現

public class redissondistributedlocker implements distributedlocker 

@override

public rlock lock(string lockkey, int leasetime)

@override

public rlock lock(string lockkey, timeunit unit ,int timeout)

@override

public boolean

trylock(string lockkey, timeunit unit, int waittime, int leasetime) catch (interruptedexception e)

}@override

public void

unlock(string lockkey)

@override

public void

unlock(rlock lock)

public redissonclient getredissonclient()

public void

setredissonclient(redissonclient redissonclient)

}

3.工具

public class redisslockutil 

/*** 加鎖

*@param

lockkey

*@return

*/public static rlock lock(string lockkey)

/*** 釋放鎖

*@param

lockkey

*/public static void

unlock(string lockkey)

/*** 釋放鎖

*@param

lock

*/public static void

unlock(rlock lock)

/*** 帶超時的鎖

*@param

lockkey

*@param

timeout

超時時間 單位:秒

*/public static rlock lock(string lockkey, int timeout)

/*** 帶超時的鎖

*@param

lockkey

*@param

unit

時間單位

*@param

timeout

超時時間

*/public static rlock lock(string lockkey, timeunit unit , int timeout)

/*** 嘗試獲取鎖

*@param

lockkey

*@param

waittime

最多等待時間

*@param

leasetime

上鎖後自動釋放鎖時間

*@return

*/public static boolean

trylock(string lockkey, int waittime, int leasetime)

/*** 嘗試獲取鎖

*@param

lockkey

*@param

unit

時間單位

*@param

waittime

最多等待時間

*@param

leasetime

上鎖後自動釋放鎖時間

*@return

*/public static boolean

trylock(string lockkey, timeunit unit, int waittime, int leasetime)

public static void

setredisslock(distributedlocker redisslock)

}

4.bean

@bean

distributedlocker distributedlocker(redissonclient redissonclient)

redisson分布式鎖

介面做冪等的方式很多,我們應用使用分布式鎖 插入明細來做冪等。但是發現冪等失效了,最終確認是業務執行尚未結束,還沒有插入明細。但是客戶端第二個訪問就來到了,此時呢,分布式鎖的時間也失效了。也就是兩個問題 1是業務執行為什麼很慢,這個就有很多種情況暫不考慮。考慮第二種情況,能不能加長分布式鎖的時間。由...

分布式鎖 redisson

1 匯入依賴 org.redissongroupid redissonartifactid 3.11.1version dependency 2 配置redisson configuration public class redissonconfig spring name cjs redisson...

redis分布式鎖redisson

原文 關於redisson的源 請參考官網 redisson官方講解參考 wiki e7 9b ae e5 bd 95 首先需要引入redisson org.springframework.bootgroupid spring boot starter data redisartifactid de...