<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        redis的分布式鎖是樂觀鎖嗎

        來源:懂視網 責編:小采 時間:2020-11-09 06:57:54
        文檔

        redis的分布式鎖是樂觀鎖嗎

        redis的分布式鎖是樂觀鎖嗎:簡單來說,Redis使用樂觀鎖,相對于悲觀鎖,在實現(xiàn)中更加簡單,在某些場景中的性能也更好。Redis作為一個輕量級的、快速的緩存引擎,而不是一個全功能的關系型數(shù)據(jù)庫,既沒有使用悲觀鎖的必要,也難以承受使用悲觀鎖的成本。樂觀鎖(Optimistic Lock
        推薦度:
        導讀redis的分布式鎖是樂觀鎖嗎:簡單來說,Redis使用樂觀鎖,相對于悲觀鎖,在實現(xiàn)中更加簡單,在某些場景中的性能也更好。Redis作為一個輕量級的、快速的緩存引擎,而不是一個全功能的關系型數(shù)據(jù)庫,既沒有使用悲觀鎖的必要,也難以承受使用悲觀鎖的成本。樂觀鎖(Optimistic Lock
        簡單來說,Redis使用樂觀鎖,相對于悲觀鎖,在實現(xiàn)中更加簡單,在某些場景中的性能也更好。Redis作為一個輕量級的、快速的緩存引擎,而不是一個全功能的關系型數(shù)據(jù)庫,既沒有使用悲觀鎖的必要,也難以承受使用悲觀鎖的成本。

        樂觀鎖(Optimistic Lock),顧名思義,就是很樂觀,每次去拿數(shù)據(jù)的時候都認為別人不會修改,所以不會上鎖,但是在更新的時候回判斷一下再次期間別人有沒有去更新這個數(shù)據(jù),可以使用版本號等機制。樂觀鎖適用于多讀的應用類型,這樣可以提高吞吐量。

        樂觀鎖策略:提交版本必須大于記錄當前版本才能執(zhí)行更新(推薦學習:Redis視頻教程)

        Redis對于事務只提供了非常有限的支持,其實更多地是試圖繞過問題。

        首先,Redis對于同一事務中的一組操作,而不是立即執(zhí)行,而是放入一個queue中,當執(zhí)行到EXEC時,再一起執(zhí)行。事務執(zhí)行是全局獨占的,也就是同一時間只有一個事務被執(zhí)行,中途不能被其它事務打斷。Redis用這種最簡單的、也是性能最差的方式避免了race condition。

        其次,在Redis的事務中,如果有一個或多個操作失敗,其它操作仍然會成功,也就是說它根本沒有回滾機制。

        這種方式會帶來很多嚴重的問題,其中之一是,無法先讀取某個數(shù)值后再進行依賴這個值的操作,因為放在一個事務里會被在同一個瞬間執(zhí)行,不放在同一個事務里又會導致race condition。解決方法是使用WATCH,它會監(jiān)視一個或多個變量,如果變量的值在調用WATCH以后和事務提交之前被別的事務修改過了,整個事務都會失敗。這類似于操作系統(tǒng)中的CAS(Compare and Set)。我不知道WATCH具體是怎么實現(xiàn)的,但是我推測它監(jiān)控了指定變量的版本號。

        即使有了WATCH,Redis的事務也是受到嚴重限制的。第一,它沒有實現(xiàn)讀數(shù)據(jù)時的一致性,因為WATCH對于讀操作不起作用。第二,它不支持回滾。第三,在對同一變量存在大量并發(fā)寫操作時,性能會非常差,因為每次提交事務時,WATCH監(jiān)控的變量都已經被修改了,導致事務將多次提交失敗。但是,Redis本來就是一個KV類型的緩存引擎,要處理的是大量讀少量寫的場景,對一致性也沒有要求。

        更多Redis相關技術文章,請訪問Redis數(shù)據(jù)庫使用入門教程欄目進行學習!

        聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        redis的分布式鎖是樂觀鎖嗎

        redis的分布式鎖是樂觀鎖嗎:簡單來說,Redis使用樂觀鎖,相對于悲觀鎖,在實現(xiàn)中更加簡單,在某些場景中的性能也更好。Redis作為一個輕量級的、快速的緩存引擎,而不是一個全功能的關系型數(shù)據(jù)庫,既沒有使用悲觀鎖的必要,也難以承受使用悲觀鎖的成本。樂觀鎖(Optimistic Lock
        推薦度:
        標簽: 樂觀 redis 樂觀鎖
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 亚洲精品国偷自产在线| 久久久久亚洲爆乳少妇无| 99久久亚洲综合精品成人网| 成人无码WWW免费视频| 中文字幕 亚洲 有码 在线| 69视频免费观看l| 337p欧洲亚洲大胆艺术| 成人黄色免费网址| 国产精品亚洲一区二区三区在线 | 亚洲色欲色欱wwW在线| 国产在线观看免费观看不卡 | 国产精品亚洲专区无码牛牛| 噜噜嘿在线视频免费观看| 精品一区二区三区无码免费直播 | 羞羞网站免费观看| 亚洲人成国产精品无码| baoyu116.永久免费视频| 久久水蜜桃亚洲av无码精品麻豆| 亚洲视频免费观看| 中文字幕无码亚洲欧洲日韩| 99re热精品视频国产免费| 亚洲人成影院在线| 成人av免费电影| 黄床大片30分钟免费看| 国产亚洲人成网站在线观看不卡| 国产免费不卡视频| 337P日本欧洲亚洲大胆艺术图 | 成人毛片免费播放| 国产亚洲男人的天堂在线观看 | 国产精品成人免费一区二区 | 亚洲一区二区三区在线视频| 国产午夜无码精品免费看动漫| 亚洲日本精品一区二区| 日本人的色道www免费一区| 精品国产免费人成网站| 亚洲第一页在线播放| mm1313亚洲精品国产| 最新亚洲人成无码网www电影| 亚洲人成人77777网站| 久久国产乱子伦精品免费强| youjizz亚洲|