Redis 分布式鎖

1.2 基于Redis的分布式鎖

1.2.2 實(shí)現(xiàn)原理: 基于樂觀鎖,即在提交事務(wù)前檢查數(shù)據(jù)版本是否被更新磷蜀,若被更新則進(jìn)行操作回滾;

1.2.3 核心代碼:

       /**
         * @Description: 嘗試獲得某資源的鎖,獲取成功為true进陡,否則為false
         * @Param: [source] 資源名稱
         * @Return: boolean
         * @Author: Guimu
         * @Date: 2018/8/8  下午5:53
         */
        public boolean getLock(String source) {
            SessionCallback sc = new SessionCallback() {
                @Override
                public List<Object> execute(RedisOperations operations) throws DataAccessException {
                    operations.watch(source);//開始觀察資源
                    boolean flag = null == operations.opsForValue().get(source);//資源是否可用
                    List<Object> rs = null;
                    if (flag) {//資源可用
                        operations.multi();//開啟事務(wù)
                        //占用資源
                        operations.opsForValue().set(source, Thread.currentThread().getName(), 120, TimeUnit.SECONDS);
                        rs = operations.exec();
                    }
                    return rs;
                }
            };
            List<Object> result = (List<Object>) tool.execute(sc);
            return null != result && result.isEmpty();
        }

1.2.4 集群中分布式鎖的應(yīng)用場(chǎng)景:

image.png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市秆撮,隨后出現(xiàn)的幾起案子四濒,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,816評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件盗蟆,死亡現(xiàn)場(chǎng)離奇詭異戈二,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)喳资,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,729評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門觉吭,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人仆邓,你說我怎么就攤上這事鲜滩。” “怎么了节值?”我有些...
    開封第一講書人閱讀 158,300評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵徙硅,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我搞疗,道長(zhǎng)嗓蘑,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,780評(píng)論 1 285
  • 正文 為了忘掉前任匿乃,我火速辦了婚禮桩皿,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘幢炸。我一直安慰自己泄隔,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,890評(píng)論 6 385
  • 文/花漫 我一把揭開白布宛徊。 她就那樣靜靜地躺著佛嬉,像睡著了一般。 火紅的嫁衣襯著肌膚如雪岩调。 梳的紋絲不亂的頭發(fā)上巷燥,一...
    開封第一講書人閱讀 50,084評(píng)論 1 291
  • 那天,我揣著相機(jī)與錄音号枕,去河邊找鬼缰揪。 笑死,一個(gè)胖子當(dāng)著我的面吹牛葱淳,可吹牛的內(nèi)容都是我干的钝腺。 我是一名探鬼主播,決...
    沈念sama閱讀 39,151評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼赞厕,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼艳狐!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起皿桑,我...
    開封第一講書人閱讀 37,912評(píng)論 0 268
  • 序言:老撾萬榮一對(duì)情侶失蹤毫目,失蹤者是張志新(化名)和其女友劉穎蔬啡,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體镀虐,經(jīng)...
    沈念sama閱讀 44,355評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡箱蟆,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,666評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了刮便。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片空猜。...
    茶點(diǎn)故事閱讀 38,809評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖恨旱,靈堂內(nèi)的尸體忽然破棺而出辈毯,到底是詐尸還是另有隱情,我是刑警寧澤搜贤,帶...
    沈念sama閱讀 34,504評(píng)論 4 334
  • 正文 年R本政府宣布谆沃,位于F島的核電站,受9級(jí)特大地震影響仪芒,放射性物質(zhì)發(fā)生泄漏管毙。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,150評(píng)論 3 317
  • 文/蒙蒙 一桌硫、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧啃炸,春花似錦铆隘、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,882評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至裹虫,卻和暖如春肿嘲,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背筑公。 一陣腳步聲響...
    開封第一講書人閱讀 32,121評(píng)論 1 267
  • 我被黑心中介騙來泰國打工雳窟, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人匣屡。 一個(gè)月前我還...
    沈念sama閱讀 46,628評(píng)論 2 362
  • 正文 我出身青樓封救,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國和親捣作。 傳聞我的和親對(duì)象是個(gè)殘疾皇子誉结,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,724評(píng)論 2 351

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

  • 分布式鎖在很多場(chǎng)景中是非常有用的原語, 不同的進(jìn)程必須以獨(dú)占資源的方式實(shí)現(xiàn)資源共享就是一個(gè)典型的例子券躁。例如目前所在...
    BeStronger30閱讀 567評(píng)論 0 2
  • 在很多場(chǎng)景中惩坑,不同的進(jìn)程必須以排他的方式操作一些共享資源掉盅,這時(shí)分布式鎖就是一個(gè)非常有用的原語。 有很多庫和博客都描...
    shysheng閱讀 592評(píng)論 0 2
  • 前置知識(shí) 最低保證的分布式鎖特性 互斥安全:能夠保護(hù)臨界代碼區(qū)被互斥的訪問以舒。(這是鎖的要求) 不會(huì)死鎖:當(dāng)持有鎖的...
    一劍光寒十九洲閱讀 1,149評(píng)論 0 3
  • 有這樣一位讓人動(dòng)容的母親。 這是一個(gè)暑假奋刽, 也是一個(gè)炎焱的夏天瓦侮, 家住湖南的她,向公司請(qǐng)假一個(gè)月佣谐, 買了兩張來回上...
    腦動(dòng)力閱讀 441評(píng)論 0 0
  • 放眼那遼闊的萬里疆土 穿越在神州大地 如雄雞般橫跨于亞洲的版圖 ...
    山魂MountainSoul閱讀 364評(píng)論 17 22