redis緩存延時雙刪指的是什么

本文小編為大家詳細介紹“redis緩存延時雙刪指的是什么”,內(nèi)容詳細,步驟清晰,細節(jié)處理妥當(dāng),希望這篇“redis緩存延時雙刪指的是什么”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學(xué)習(xí)新知識吧。

我們提供的服務(wù)有:成都做網(wǎng)站、網(wǎng)站建設(shè)、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認證、樂陵ssl等。為上千家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的樂陵網(wǎng)站制作公司

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

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

延時雙刪是什么?

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

采用反證法

只先刪

redis緩存延時雙刪指的是什么

只后刪

redis緩存延時雙刪指的是什么

結(jié)論

從而得出 前刪和后刪都有問題。所以采用延時雙刪的策略

思考2:為啥是延時

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

redis緩存延時雙刪指的是什么

補充:為什么要延遲雙刪,來保證緩存一致性

為什么要延遲雙刪,來保證緩存一致性

  • 在修改數(shù)據(jù)庫數(shù)據(jù)前,需要先刪除一次redis:此時是為了保證在數(shù)據(jù)庫數(shù)據(jù)修改和redis數(shù)據(jù)被刪除的間隔時間內(nèi),如有命中,保證此數(shù)據(jù)也不存在redis中。如果沒有這一次刪除,當(dāng)數(shù)據(jù)庫數(shù)據(jù)已經(jīng)被修改了,但是還是可以從redis中讀出舊數(shù)據(jù),導(dǎo)致數(shù)據(jù)不一致。

  • 第二次刪除則是在修改數(shù)據(jù)庫數(shù)據(jù)后,此時需要再次刪除redis中對應(yīng)數(shù)據(jù)一次,這一次是為了刪除 第一次redis刪除和數(shù)據(jù)庫數(shù)據(jù)修改之間,如果有請求,那么舊數(shù)據(jù)又會重新緩存到redis中,然而數(shù)據(jù)在數(shù)據(jù)庫中在接下來就會被修改,如果沒有這一次刪除,redis中則會存在數(shù)據(jù)庫中舊的數(shù)據(jù)。

  • 那么第二次為什么需要在數(shù)據(jù)庫修改后延遲一定時間再刪除redis呢?

  • 為了等待之前的一次讀取數(shù)據(jù)庫,并等待其數(shù)據(jù)寫入到緩存,最后刪除這次臟數(shù)據(jù),所以是一次數(shù)據(jù)從數(shù)據(jù)庫中發(fā)到服務(wù)器+緩存寫入的時間

redis緩存延時雙刪指的是什么

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

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

同時為了保證緩存一定會被刪除,可以采用mq,來保證緩存會被刪除

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

讀到這里,這篇“redis緩存延時雙刪指的是什么”文章已經(jīng)介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領(lǐng)會,如果想了解更多相關(guān)內(nèi)容的文章,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

分享標題:redis緩存延時雙刪指的是什么
網(wǎng)站鏈接:http://bm7419.com/article36/jdscsg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站制作域名注冊、移動網(wǎng)站建設(shè)品牌網(wǎng)站建設(shè)、網(wǎng)站改版、營銷型網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

商城網(wǎng)站建設(shè)