亚洲视频二区_亚洲欧洲日本天天堂在线观看_日韩一区二区在线观看_中文字幕不卡一区

公告:魔扣目錄網(wǎng)為廣大站長提供免費收錄網(wǎng)站服務,提交前請做好本站友鏈:【 網(wǎng)站目錄:http://www.430618.com 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

作者 | mushishi

來源 | urlify.cn/Mry6bi

redis分布式鎖基本原理

采用 redis 實現(xiàn)分布式鎖,主要是利用其單線程命令執(zhí)行的特性,一般是 setnx, 只會有一個線程會執(zhí)行成功,也就是只有一個線程能成功獲取鎖;看著很完美

看看可能有什么問題?

一般生產(chǎn)環(huán)境為了可用性,redis 會部署 master-slave + sentinel 的結構, 如:

redis實現(xiàn)分布式鎖天然的缺陷

 


master 提供服務、slave standby 作為備份節(jié)點不提供服務, master異步將數(shù)據(jù)復制給 slave 以保證數(shù)據(jù)一致, sentinel哨兵檢查 master節(jié)點,當master節(jié)點故障時 將slave節(jié)點提升為 新的master 對外提供服務;

正常情況下,都是當前 master 對外提供服務,多個線程 setnx 只會有一個成功

redis實現(xiàn)分布式鎖天然的缺陷

 

當 master 故障時

線上環(huán)境嘛,總會有各種各樣的故障出現(xiàn),這也是為什么要部署 ha 的原因;

我們設想,thread-1 setnx a 1 成功后,master節(jié)點發(fā)生故障;但是,此時 a=1 這條數(shù)據(jù)還沒來得及同步到 slave 節(jié)點,然后 sentinel 哨兵會進行故障切換將 slave 提升上來對外提供服務, 然后 thread-2 來 setnx a 1 加鎖,因為之前鎖狀態(tài)在 slave 不存在,那這時候 thread-2 也會加鎖成功, 這個時候鎖的語義就被破壞了

redis實現(xiàn)分布式鎖天然的缺陷

 

 

分享到:
標簽:redis
用戶無頭像

網(wǎng)友整理

注冊時間:

網(wǎng)站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨大挑戰(zhàn)2018-06-03

數(shù)獨一種數(shù)學游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數(shù)有氧達人2018-06-03

記錄運動步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定