基於redis的分布式互斥鎖方案

2021-10-03 11:49:25 字數 254 閱讀 5726

存乙個key到redis,設定失效時間,當程式需要獲取鎖的時候判斷這個key是否存在,如果存在就是其他執行緒正在使用鎖,將當前執行緒掛起,死迴圈獲取鎖。迴圈獲取鎖可以定義迴圈多長時間,每多久去獲取鎖優化一下。這種鎖是不公平的,但是相對來說效率也較好

實現jdk的lock介面,在lock()方法或者trylock()方法中寫新增redis的邏輯,在unlock()寫刪除redis key的邏輯

使用框架redisson,使用sdk實現分布式互斥鎖

文件:

基於redis的分布式鎖

public class redislock 加鎖 取到鎖加鎖,並返回值用於解鎖 取不到鎖則立即返回 1 param millitimeout 最長鎖定時間,超時後自動刪除鎖,避免死鎖 return public synchronized long lock long millitimeout lo...

基於 Redis 的分布式鎖

分布式鎖在分布式應用中應用廣泛,想要搞懂乙個新事物首先得了解它的由來,這樣才能更加的理解甚至可以舉一反三。首先談到分布式鎖自然也就聯想到分布式應用。在我們將應用拆分為分布式應用之前的單機系統中,對一些併發場景讀取公共資源時如扣庫存,賣車票之類的需求可以簡單的使用同步或者是加鎖就可以實現。但是應用分布...

基於Redis的分布式鎖

the real target is that i was asked theredis鎖usage in the interview.and i cann t answer it.真正目的是因為在面試中被問到多執行緒這塊怎麼實現的,當時只是看了下 是用redis鎖實現的,至於具體的細節。自己回答的...