日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

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

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

作者 | mushishi

來(lái)源 | urlify.cn/Mry6bi

redis分布式鎖基本原理

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

看看可能有什么問(wèn)題?

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

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

 


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

正常情況下,都是當(dāng)前 master 對(duì)外提供服務(wù),多個(gè)線程 setnx 只會(huì)有一個(gè)成功

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

 

當(dāng) master 故障時(shí)

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

我們?cè)O(shè)想,thread-1 setnx a 1 成功后,master節(jié)點(diǎn)發(fā)生故障;但是,此時(shí) a=1 這條數(shù)據(jù)還沒(méi)來(lái)得及同步到 slave 節(jié)點(diǎn),然后 sentinel 哨兵會(huì)進(jìn)行故障切換將 slave 提升上來(lái)對(duì)外提供服務(wù), 然后 thread-2 來(lái) setnx a 1 加鎖,因?yàn)橹版i狀態(tài)在 slave 不存在,那這時(shí)候 thread-2 也會(huì)加鎖成功, 這個(gè)時(shí)候鎖的語(yǔ)義就被破壞了

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

 

 

分享到:
標(biāo)簽:redis
用戶無(wú)頭像

網(wǎng)友整理

注冊(cè)時(shí)間:

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

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會(huì)員

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

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

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

答題星2018-06-03

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

全階人生考試2018-06-03

各種考試題,題庫(kù),初中,高中,大學(xué)四六

運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

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

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

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

體育訓(xùn)練成績(jī)?cè)u(píng)定2018-06-03

通用課目體育訓(xùn)練成績(jī)?cè)u(píng)定