真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

redis分布式鎖的實現(xiàn)原理-創(chuàng)新互聯(lián)

小編給大家分享一下redis分布式鎖的實現(xiàn)原理,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討吧!

創(chuàng)新互聯(lián)建站是專業(yè)的重慶網(wǎng)站建設(shè)公司,重慶接單;提供成都網(wǎng)站制作、成都網(wǎng)站建設(shè)、外貿(mào)營銷網(wǎng)站建設(shè),網(wǎng)頁設(shè)計,網(wǎng)站設(shè)計,建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進行重慶網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團隊,希望更多企業(yè)前來合作!

分布式鎖其實可以理解為:控制分布式系統(tǒng)有序的去對共享資源進行操作,通過互斥來保持一致性。

舉個不太恰當(dāng)?shù)睦樱?/strong>

假設(shè)共享的資源就是一個房子,里面有各種書,分布式系統(tǒng)就是要進屋看書的人,分布式鎖就是保證這個房子只有一個門并且一次只有一個人可以進,而且門只有一把鑰匙。然后許多人要去看書,可以,排隊,第一個人拿著鑰匙把門打開進屋看書并且把門鎖上,然后第二個人沒有鑰匙,那就等著,等第一個出來,然后你在拿著鑰匙進去,然后就是以此類推

實現(xiàn)原理

互斥性

保證同一時間只有一個客戶端可以拿到鎖,也就是可以對共享資源進行操作

安全性

只有加鎖的服務(wù)才能有解鎖權(quán)限,也就是不能讓a加的鎖,bcd都可以解鎖,如果都能解鎖那分布式鎖就沒啥意義了

可能出現(xiàn)的情況就是a去查詢發(fā)現(xiàn)持有鎖,就在準(zhǔn)備解鎖,這時候忽然a持有的鎖過期了,然后b去獲得鎖,因為a鎖過期,b拿到鎖,這時候a繼續(xù)執(zhí)行第二步進行解鎖如果不加校驗,就將b持有的鎖就給刪除了

避免死鎖

出現(xiàn)死鎖就會導(dǎo)致后續(xù)的任何服務(wù)都拿不到鎖,不能再對共享資源進行任何操作了

保證加鎖與解鎖操作是原子性操作

這個其實屬于是實現(xiàn)分布式鎖的問題,假設(shè)a用redis實現(xiàn)分布式鎖

假設(shè)加鎖操作,操作步驟分為兩步:

1,設(shè)置key set(key,value)2,給key設(shè)置過期時間

假設(shè)現(xiàn)在a剛實現(xiàn)set后,程序崩了就導(dǎo)致了沒給key設(shè)置過期時間就導(dǎo)致key一直存在就發(fā)生了死鎖

如何實現(xiàn)分布式鎖

實現(xiàn)分布式鎖的方式有很多,只要滿足上述條件的都可以實現(xiàn)分布式鎖,比如數(shù)據(jù)庫,redis,zookeeper,在這里就先講一下如何使用redis實現(xiàn)分布式鎖

分布式鎖實現(xiàn)的關(guān)鍵是在分布式的應(yīng)用服務(wù)器外,搭建一個存儲服務(wù)器,存儲鎖信息,這時候我們很容易就想到了Redis。首先我們要搭建一個Redis服務(wù)器,用Redis服務(wù)器來存儲鎖信息。

使用redis實現(xiàn)分布式鎖

使用redis命令 set key value NX EX max-lock-time 實現(xiàn)加鎖

使用redis命令 EVAL 實現(xiàn)解鎖

在實現(xiàn)的時候要注意的幾個關(guān)鍵點:

1、鎖信息必須是會過期超時的,不能讓一個線程長期占有一個鎖而導(dǎo)致死鎖;

2、同一時刻只能有一個線程獲取到鎖。

幾個要用到的redis命令:

setnx(key, value):“set if not exits”,若該key-value不存在,則成功加入緩存并且返回1,否則返回0。

get(key):獲得key對應(yīng)的value值,若不存在則返回nil。

getset(key, value):先獲取key對應(yīng)的value值,若不存在則返回nil,然后將舊的value更新為新的value。

expire(key, seconds):設(shè)置key-value的有效期為seconds秒。

看完了這篇文章,相信你對redis分布式鎖的實現(xiàn)原理有了一定的了解,想了解更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。


標(biāo)題名稱:redis分布式鎖的實現(xiàn)原理-創(chuàng)新互聯(lián)
地址分享:http://weahome.cn/article/ccdogh.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部