最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

redis緩存延時(shí)雙刪的原因分析

 更新時(shí)間:2022年08月16日 08:48:50   作者:____lynn_____  
延時(shí)雙刪就是在增刪改某實(shí)體類(lèi)的時(shí)候,要對(duì)該實(shí)體類(lèi)的緩存進(jìn)行清空,清空的位置在數(shù)據(jù)庫(kù)操作方法的前后,這篇文章主要介紹了redis緩存為什么要延時(shí)雙刪,需要的朋友可以參考下

緩存為啥是刪除,而不是更新?

如果是更新,存在分布式事務(wù)問(wèn)題,可能出現(xiàn)修改了緩存,數(shù)據(jù)庫(kù)修改失敗的情況。只是刪除緩存的話,就算數(shù)據(jù)庫(kù)修改失敗,下次查詢(xún)會(huì)直接取數(shù)據(jù)庫(kù)的數(shù)據(jù),也不會(huì)出現(xiàn)臟數(shù)據(jù)。

延時(shí)雙刪是什么?

就是在增刪改某實(shí)體類(lèi)的時(shí)候,要對(duì)該實(shí)體類(lèi)的緩存進(jìn)行清空,清空的位置在數(shù)據(jù)庫(kù)操作方法的前后。

采用反證法

只先刪

????

在這里插入圖片描述

只后刪

在這里插入圖片描述

結(jié)論

從而得出 前刪和后刪都有問(wèn)題。所以采用延時(shí)雙刪的策略

思考2:為啥是延時(shí)

依然是反證法。下圖這情況是雙刪依然存在舊緩存的情況,延時(shí)是確保 修改數(shù)據(jù)庫(kù)-》清空緩存前,其他事務(wù)的更改緩存操作已經(jīng)執(zhí)行完。

在這里插入圖片描述

補(bǔ)充:為什么要延遲雙刪,來(lái)保證緩存一致性

為什么要延遲雙刪,來(lái)保證緩存一致性

  • 在修改數(shù)據(jù)庫(kù)數(shù)據(jù)前,需要先刪除一次redis:此時(shí)是為了保證在數(shù)據(jù)庫(kù)數(shù)據(jù)修改和redis數(shù)據(jù)被刪除的間隔時(shí)間內(nèi),如有命中,保證此數(shù)據(jù)也不存在redis中。如果沒(méi)有這一次刪除,當(dāng)數(shù)據(jù)庫(kù)數(shù)據(jù)已經(jīng)被修改了,但是還是可以從redis中讀出舊數(shù)據(jù),導(dǎo)致數(shù)據(jù)不一致。
  • 第二次刪除則是在修改數(shù)據(jù)庫(kù)數(shù)據(jù)后,此時(shí)需要再次刪除redis中對(duì)應(yīng)數(shù)據(jù)一次,這一次是為了刪除 第一次redis刪除和數(shù)據(jù)庫(kù)數(shù)據(jù)修改之間,如果有請(qǐng)求,那么舊數(shù)據(jù)又會(huì)重新緩存到redis中,然而數(shù)據(jù)在數(shù)據(jù)庫(kù)中在接下來(lái)就會(huì)被修改,如果沒(méi)有這一次刪除,redis中則會(huì)存在數(shù)據(jù)庫(kù)中舊的數(shù)據(jù)。
  • 那么第二次為什么需要在數(shù)據(jù)庫(kù)修改后延遲一定時(shí)間再刪除redis呢?
  • 為了等待之前的一次讀取數(shù)據(jù)庫(kù),并等待其數(shù)據(jù)寫(xiě)入到緩存,最后刪除這次臟數(shù)據(jù),所以是一次數(shù)據(jù)從數(shù)據(jù)庫(kù)中發(fā)到服務(wù)器+緩存寫(xiě)入的時(shí)間

延遲雙刪為什么要延遲

但是延遲雙刪,所延遲的時(shí)間非常的難以確定,所以并不推薦延遲雙刪

根據(jù)綜合考慮,即使先修改數(shù)據(jù)庫(kù),在刪除緩存,有一定的時(shí)間會(huì)導(dǎo)致讀取到舊數(shù)據(jù),這通常是可以被忍受的。
只要及時(shí)將緩存刪除,其他線程就可以讀取到最新的值。

同時(shí)為了保證緩存一定會(huì)被刪除,可以采用mq,來(lái)保證緩存會(huì)被刪除

如果在mq中消息沒(méi)有被重復(fù)消費(fèi),還會(huì)交由給其他消費(fèi)者消費(fèi)(將緩存刪除)

到此這篇關(guān)于redis緩存延時(shí)雙刪的原因分析的文章就介紹到這了,更多相關(guān)redis緩存延時(shí)雙刪內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Redisson分布式鎖解鎖異常問(wèn)題

    Redisson分布式鎖解鎖異常問(wèn)題

    文章主要描述了在使用Redisson進(jìn)行分布式鎖操作時(shí),遇到的`IllegalMonitorStateException`異常,通過(guò)分析報(bào)錯(cuò)信息,作者發(fā)現(xiàn)了問(wèn)題的根源在于線程嘗試解鎖但未按順序執(zhí)行,作者提出了兩種解決方案:在解鎖前增加判斷,確保線程已獲得鎖
    2024-12-12
  • Govern Service 基于 Redis 的服務(wù)治理平臺(tái)安裝過(guò)程詳解

    Govern Service 基于 Redis 的服務(wù)治理平臺(tái)安裝過(guò)程詳解

    Govern Service 是一個(gè)輕量級(jí)、低成本的服務(wù)注冊(cè)、服務(wù)發(fā)現(xiàn)、 配置服務(wù) SDK,通過(guò)使用現(xiàn)有基礎(chǔ)設(shè)施中的 Redis 不用給運(yùn)維部署帶來(lái)額外的成本與負(fù)擔(dān),接下來(lái)通過(guò)本文給大家分享Govern Service 基于 Redis 的服務(wù)治理平臺(tái)的相關(guān)知識(shí),感興趣的朋友一起看看吧
    2021-05-05
  • Python交互Redis的實(shí)現(xiàn)

    Python交互Redis的實(shí)現(xiàn)

    本文主要介紹了Python交互Redis的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-08-08
  • Redis數(shù)據(jù)類(lèi)型超詳細(xì)講解分析

    Redis數(shù)據(jù)類(lèi)型超詳細(xì)講解分析

    Redis是一個(gè)開(kāi)源的內(nèi)存數(shù)據(jù)結(jié)構(gòu)存儲(chǔ)系統(tǒng),可以用作數(shù)據(jù)庫(kù)、緩存和消息中間件,本文詳細(xì)介紹了Redis的各個(gè)數(shù)據(jù)類(lèi)型、內(nèi)部編碼以及一些高級(jí)功能,如Geo、HyperLogLog和Stream,需要的朋友可以參考下
    2024-12-12
  • Redis整合Spring結(jié)合使用緩存實(shí)例

    Redis整合Spring結(jié)合使用緩存實(shí)例

    這篇文章主要介紹了Redis整合Spring結(jié)合使用緩存實(shí)例,介紹了如何在Spring中配置redis,并通過(guò)Spring中AOP的思想,將緩存的方法切入到有需要進(jìn)入緩存的類(lèi)或方法前面。需要的朋友可以參考下
    2015-12-12
  • 基于Redis延遲隊(duì)列的實(shí)現(xiàn)代碼

    基于Redis延遲隊(duì)列的實(shí)現(xiàn)代碼

    在生活中很多時(shí)候都會(huì)用到延遲隊(duì)列,本文基于Redis延遲隊(duì)列的實(shí)現(xiàn)代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-05-05
  • redis分布式鎖的8大坑總結(jié)梳理

    redis分布式鎖的8大坑總結(jié)梳理

    這篇文章主要介紹了redis分布式鎖的8大坑總結(jié)梳理,使用redis的分布式鎖,我們首先想到的可能是setNx命令,文章圍繞setNx命令展開(kāi)詳細(xì)的內(nèi)容介紹,感興趣的小伙伴可以參考一下
    2022-07-07
  • 深入理解redis_memcached失效原理(小結(jié))

    深入理解redis_memcached失效原理(小結(jié))

    這篇文章主要介紹了深入理解redis_memcached失效原理(小結(jié)),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-08-08
  • Redis中的配置文件,數(shù)據(jù)持久化,事務(wù)

    Redis中的配置文件,數(shù)據(jù)持久化,事務(wù)

    這篇文章主要介紹了Redis中的配置文件,數(shù)據(jù)持久化,事務(wù)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。
    2022-12-12
  • Spring?Boot實(shí)戰(zhàn)解決高并發(fā)數(shù)據(jù)入庫(kù)之?Redis?緩存+MySQL?批量入庫(kù)問(wèn)題

    Spring?Boot實(shí)戰(zhàn)解決高并發(fā)數(shù)據(jù)入庫(kù)之?Redis?緩存+MySQL?批量入庫(kù)問(wèn)題

    這篇文章主要介紹了Spring?Boot實(shí)戰(zhàn)解決高并發(fā)數(shù)據(jù)入庫(kù)之?Redis?緩存+MySQL?批量入庫(kù)問(wèn)題,本文通過(guò)圖文實(shí)例相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-02-02

最新評(píng)論

海宁市| 穆棱市| 铜川市| 常山县| 江安县| 宁陕县| 兴安县| 大埔区| 阳原县| 门源| 青田县| 星子县| 高州市| 龙山县| 桃江县| 原阳县| 金湖县| 临猗县| 邯郸市| 周宁县| 昌平区| 富源县| 崇仁县| 阳原县| 中宁县| 偃师市| 天峻县| 日照市| 尖扎县| 保靖县| 三亚市| 奈曼旗| 米易县| 马尔康县| 集安市| 萨迦县| 石家庄市| 吉隆县| 岑溪市| 惠水县| 苗栗县|