基于redis簡單的分布式鎖實現(xiàn)思路

基于分布式系統(tǒng),Java提供的內(nèi)置鎖(synchronized和AQS Lock)無法滿足在分布式環(huán)境下保證線程的原子性一致性持久性
使用Redis Spring數(shù)據(jù)結(jié)構(gòu)基于原子性的設(shè)計可以實現(xiàn)其分布式鎖
其思路為:

第一步
通過RedisTemplate接口向Redis中新增我們的鎖數(shù)據(jù)(參數(shù):鎖名,線程ID,超時自動過期時間,單位)

第二步
判斷該線程是否是新增鎖數(shù)據(jù)的線程(判斷redis中是否存有鎖名的數(shù)據(jù)),即判斷該線程是否拿到鎖,如果是就執(zhí)行業(yè)務(wù)邏輯,如果沒有拿到鎖那么處于等待狀態(tài),直到該鎖被釋放

第三步
程序執(zhí)行完成,執(zhí)行釋放鎖的代碼(delete),允許其他線程爭搶拿鎖執(zhí)行

說明:
應(yīng)保證添加鎖數(shù)據(jù)時原子性
應(yīng)保證是對應(yīng)的線程釋放對應(yīng)的鎖(加入線程ID參數(shù)的原因,防止出現(xiàn)鎖失效)
鎖的自動失效時間不易過長也不易過短

簡單代碼如下:

問題:
無法保證線程在鎖失效時間前執(zhí)行完畢 會出現(xiàn)bug
解決方案:鎖續(xù)命

比較成熟的鎖框架推薦
redisson

基于redis 原子性 即lua腳本實現(xiàn)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末满败,一起剝皮案震驚了整個濱河市肤频,隨后出現(xiàn)的幾起案子宵荒,更是在濱河造成了極大的恐慌,老刑警劉巖净嘀,帶你破解...
    沈念sama閱讀 211,376評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件报咳,死亡現(xiàn)場離奇詭異,居然都是意外死亡挖藏,警方通過查閱死者的電腦和手機(jī)暑刃,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,126評論 2 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來膜眠,“玉大人岩臣,你說我怎么就攤上這事∠颍” “怎么了架谎?”我有些...
    開封第一講書人閱讀 156,966評論 0 347
  • 文/不壞的土叔 我叫張陵,是天一觀的道長辟躏。 經(jīng)常有香客問我谷扣,道長,這世上最難降的妖魔是什么捎琐? 我笑而不...
    開封第一講書人閱讀 56,432評論 1 283
  • 正文 為了忘掉前任会涎,我火速辦了婚禮裹匙,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘末秃。我一直安慰自己概页,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,519評論 6 385
  • 文/花漫 我一把揭開白布蛔溃。 她就那樣靜靜地躺著绰沥,像睡著了一般。 火紅的嫁衣襯著肌膚如雪贺待。 梳的紋絲不亂的頭發(fā)上徽曲,一...
    開封第一講書人閱讀 49,792評論 1 290
  • 那天版确,我揣著相機(jī)與錄音朋譬,去河邊找鬼。 笑死淮蜈,一個胖子當(dāng)著我的面吹牛哪工,可吹牛的內(nèi)容都是我干的奥此。 我是一名探鬼主播,決...
    沈念sama閱讀 38,933評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼雁比,長吁一口氣:“原來是場噩夢啊……” “哼稚虎!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起偎捎,我...
    開封第一講書人閱讀 37,701評論 0 266
  • 序言:老撾萬榮一對情侶失蹤蠢终,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后茴她,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體寻拂,經(jīng)...
    沈念sama閱讀 44,143評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,488評論 2 327
  • 正文 我和宋清朗相戀三年丈牢,在試婚紗的時候發(fā)現(xiàn)自己被綠了祭钉。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,626評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡己沛,死狀恐怖慌核,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情申尼,我是刑警寧澤遂铡,帶...
    沈念sama閱讀 34,292評論 4 329
  • 正文 年R本政府宣布,位于F島的核電站晶姊,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏伪货。R本人自食惡果不足惜们衙,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,896評論 3 313
  • 文/蒙蒙 一钾怔、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧蒙挑,春花似錦宗侦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,742評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至馋袜,卻和暖如春男旗,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背欣鳖。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工察皇, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人泽台。 一個月前我還...
    沈念sama閱讀 46,324評論 2 360
  • 正文 我出身青樓什荣,卻偏偏與公主長得像,于是被迫代替她去往敵國和親怀酷。 傳聞我的和親對象是個殘疾皇子稻爬,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,494評論 2 348

推薦閱讀更多精彩內(nèi)容