本文小編為大家詳細介紹“redis緩存延時雙刪指的是什么”,內容詳細,步驟清晰,細節處理妥當,希望這篇“redis緩存延時雙刪指的是什么”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。
我們提供的服務有:成都做網站、網站建設、微信公眾號開發、網站優化、網站認證、樂陵ssl等。為上千家企事業單位解決了網站和推廣的問題。提供周到的售前咨詢和貼心的售后服務,是有科學管理、有技術的樂陵網站制作公司
如果是更新,存在分布式事務問題,可能出現修改了緩存,數據庫修改失敗的情況。只是刪除緩存的話,就算數據庫修改失敗,下次查詢會直接取數據庫的數據,也不會出現臟數據。
就是在增刪改某實體類的時候,要對該實體類的緩存進行清空,清空的位置在數據庫操作方法的前后。
只先刪
只后刪
從而得出 前刪和后刪都有問題。所以采用延時雙刪的策略
依然是反證法。下圖這情況是雙刪依然存在舊緩存的情況,延時是確保 修改數據庫-》清空緩存前,其他事務的更改緩存操作已經執行完。
補充:為什么要延遲雙刪,來保證緩存一致性
為什么要延遲雙刪,來保證緩存一致性
在修改數據庫數據前,需要先刪除一次redis:此時是為了保證在數據庫數據修改和redis數據被刪除的間隔時間內,如有命中,保證此數據也不存在redis中。如果沒有這一次刪除,當數據庫數據已經被修改了,但是還是可以從redis中讀出舊數據,導致數據不一致。
第二次刪除則是在修改數據庫數據后,此時需要再次刪除redis中對應數據一次,這一次是為了刪除 第一次redis刪除和數據庫數據修改之間,如果有請求,那么舊數據又會重新緩存到redis中,然而數據在數據庫中在接下來就會被修改,如果沒有這一次刪除,redis中則會存在數據庫中舊的數據。
那么第二次為什么需要在數據庫修改后延遲一定時間再刪除redis呢?
為了等待之前的一次讀取數據庫,并等待其數據寫入到緩存,最后刪除這次臟數據,所以是一次數據從數據庫中發到服務器+緩存寫入的時間
根據綜合考慮,即使先修改數據庫,在刪除緩存,有一定的時間會導致讀取到舊數據,這通常是可以被忍受的。
只要及時將緩存刪除,其他線程就可以讀取到最新的值。
如果在mq中消息沒有被重復消費,還會交由給其他消費者消費(將緩存刪除)
讀到這里,這篇“redis緩存延時雙刪指的是什么”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注創新互聯行業資訊頻道。
分享標題:redis緩存延時雙刪指的是什么
網站鏈接:http://m.2m8n56k.cn/article36/jdscsg.html
成都網站建設公司_創新互聯,為您提供品牌網站制作、域名注冊、移動網站建設、品牌網站建設、網站改版、營銷型網站建設
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯