高效能分布式鎖 redisson的使用

2021-09-29 19:49:16 字數 769 閱讀 2737

概述:在一些高併發的場景中,比如秒殺,搶票,搶購這些場景,都存在對核心資源,商品庫存的爭奪,控制不好,庫存數量可能被減少到負數,出現超賣的情況,或者 產生唯一的乙個遞增id,由於web應用部署在多個機器上,簡單的同步加鎖是無法實現的,給資料庫加鎖的話,對於高併發,1000/s的併發,資料庫可能由行鎖變成表鎖,效能下降會厲害。那相對而言,redis的分布式鎖,相對而言,是個很好的選擇,redis官方推薦使用的redisson就提供了分布式鎖和相關服務。

下面介紹下如何使用redisson。

redisson的使用方式十分簡單,詳見官方文件:

加入jar包的依賴:

org.redisson

redisson

2.7.0

配置redisson

public class redissonmanager 

//獲取redisson物件的方法

public static redisson getredisson()

}

鎖的獲取和釋放

public class distributedredislock 

//鎖的釋放

public static void release(string lockname)

}

業務邏輯中使用分布式鎖

@responsebody

public string redder() throws ioexception

高效能分布式鎖 redisson的使用

1,概述 在一些高併發的場景中,比如秒殺,搶票,搶購這些場景,都存在對核心資源,商品庫存的爭奪,控制不好,庫存數量可能被減少到負數,出現超賣的情況,或者 產生唯一的乙個遞增id,由於web應用部署在多個機器上,簡單的同步加鎖是無法實現的,給資料庫加鎖的話,對於高併發,1000 s的併發,資料庫可能由...

redisson分布式鎖

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

分布式鎖 redisson

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