redis延遲雙刪的策略
1.為什么要進行延遲雙刪
一般我們在更新數據庫數據時,需要同步redis中緩存的數據
所以存在兩種方法:
(1)第一種方案:先執行update操作,再執行緩存清除。
(2)第二種方案:先執行緩存清除,再執行update操作。
弊端:當存在並發請求時,很容易出現問題
(1)第一種方案:當請求1執行update操作后,還未來得及進行緩存清除,此時請求2查詢到並使用了redis中的舊數據。
(2)第二種方案:當請求1執行清除緩存后,還未進行update操作,此時請求2進行查詢到了舊數據並寫入了redis。
2.如何實現延遲雙刪
所以此時我們需要使用第三種方案:
先進行緩存清除,再執行update,最后(延遲N秒)再執行緩存清除。
3.需要注意的點
上述中(延遲N秒)的時間要大於一次寫操作的時間,一般為3-5秒。
原因:如果延遲時間小於寫入redis的時間,會導致請求1清除了緩存,但是請求2緩存還未寫入的尷尬。。。
ps:一般寫入的時間會遠小於5秒
素念雨
關注
————————————————
版權聲明:本文為CSDN博主「素念雨」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/whm_kkk/article/details/114311391