進(jìn)程請(qǐng)求分布式鎖時(shí)一般包含三個(gè)階段:1.進(jìn)程請(qǐng)求獲取鎖;2.獲取到鎖的進(jìn)程持有鎖并執(zhí)行業(yè)務(wù)邏輯;3.獲取到鎖的進(jìn)程釋放鎖;下文會(huì)按照這個(gè)三個(gè)階段進(jìn)行分析。單機(jī)Redis獲取鎖從一開始的請(qǐng)求進(jìn)程通過SETNX命令獲取鎖;127.0.0.1:6379>SETNXredis_lo...
在分布式系統(tǒng)中,為保證同一時(shí)間只有一個(gè)客戶端可以對(duì)共享資源進(jìn)行操作,需要對(duì)共享資源加鎖來實(shí)現(xiàn),常見有三種方式:基于數(shù)據(jù)庫(kù)實(shí)現(xiàn)分布式鎖基于Redis實(shí)現(xiàn)分布式鎖基于Zookeeper實(shí)現(xiàn)分布式鎖高并發(fā)下數(shù)據(jù)庫(kù)鎖性能太差,本文不做探究。僅針對(duì)Redis和Zookeeper實(shí)現(xiàn)的分布式...
目前互聯(lián)網(wǎng)項(xiàng)目越來越多的項(xiàng)目采用集群部署,也就是分布式情況,這兩種鎖就有些不夠用了。
最近小萊去大廠面試,最終掛在了分布式鎖上,于是回來后認(rèn)真整理了這篇文章,以期下次面試遇到同樣的問題時(shí)一雪前恥......