推薦學(xué)習(xí):redis視頻教程
如果是更新,存在分布式事務(wù)問題,可能出現(xiàn)修改了緩存,數(shù)據(jù)庫修改失敗的情況。只是刪除緩存的話,就算數(shù)據(jù)庫修改失敗,下次查詢會直接取數(shù)據(jù)庫的數(shù)據(jù),也不會出現(xiàn)臟數(shù)據(jù)。
就是在增刪改某實體類的時候,要對該實體類的緩存進行清空,清空的位置在數(shù)據(jù)庫操作方法的前后。
只先刪
????
只后刪
從而得出 前刪和后刪都有問題。所以采用延時雙刪的策略
依然是反證法。下圖這情況是雙刪依然存在舊緩存的情況,延時是確保 修改數(shù)據(jù)庫-》清空緩存前,其他事務(wù)的更改緩存操作已經(jīng)執(zhí)行完。
補充:為什么要延遲雙刪,來保證緩存一致性
為什么要延遲雙刪,來保證緩存一致性
根據(jù)綜合考慮,即使先修改數(shù)據(jù)庫,在刪除緩存,有一定的時間會導(dǎo)致讀取到舊數(shù)據(jù),這通常是可以被忍受的。
只要及時將緩存刪除,其他線程就可以讀取到最新的值。
如果在mq中消息沒有被重復(fù)消費,還會交由給其他消費者消費(將緩存刪除)
推薦學(xué)習(xí):redis視頻教程
以上就是原因分析之redis緩存延時雙刪的詳細內(nèi)容,更多請關(guān)注php中文網(wǎng)其它相關(guān)文章!
每個人都需要一臺速度更快、更穩(wěn)定的 PC。隨著時間的推移,垃圾文件、舊注冊表數(shù)據(jù)和不必要的后臺進程會占用資源并降低性能。幸運的是,許多工具可以讓 Windows 保持平穩(wěn)運行。
微信掃碼
關(guān)注PHP中文網(wǎng)服務(wù)號
QQ掃碼
加入技術(shù)交流群
Copyright 2014-2025 http://www.miracleart.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號