先刪快取還是先刪資料庫

2021-07-25 13:30:16 字數 393 閱讀 8084

在論壇上看到好多人說先刪除快取在更新資料庫,這種邏輯是錯誤的,

第一種情況先刪快取在刪資料庫:在多執行緒環境下,當乙個執行緒把快取刪掉之後,另乙個執行緒都快取,都不到快取就會直接讀庫,讀到資料後就會更新快取,先前的執行緒呢,才更新資料庫,會造成快取髒讀的情況,很容易產生快取髒讀。

第二種情況先刪資料庫再刪快取,在多執行緒情況下,當乙個執行緒刪除資料庫,另乙個執行緒讀取快取資料,讀到的是快取的資料,當先前乙個執行緒刪完資料庫後就會更新快取,這是快取就正常了,產生了一次髒讀。

第一種和第二種對比

1.第一種產生了長時間的髒讀,第二種只有很短時間的髒讀

2.第一種刪除快取後會造成快取擊穿,如果大量執行緒訪問就會中造成資料庫壓力過大,第二種其他執行緒會讀取快取資料,不會對資料庫造成很大壓力,更新資料庫後快取馬上就更新了。

先刪資料庫還是先刪快取

先刪快取再刪資料庫 在高併發的情況下會導致快取擊穿 快取沒有執行緒全部訪問資料庫造成壓力過大 當第乙個執行緒進來刪除快取,第二個執行緒進來快取沒有查詢資料庫然後更新快取,第乙個執行緒更新資料庫,造成髒讀。先刪資料庫再刪快取 當乙個執行緒進來更新資料庫,另乙個執行緒進來讀取快取,然後第乙個執行緒更新快...

快取 先資料庫還是先快取 2

到底是先運算元據庫還是先操作快取,取決於哪種方案可以避免資料不一致,或者資料不一致的概率更低。下面的分析會基於cache aside策略展開,為什麼基於cache aside策略,請檢視博文 快取更新策略 先快取再資料庫的方案,在併發讀寫情況下,會出現資料不一致的情況,如下圖所示。而且,這種不一致情...

先更新快取還是先更新資料庫?

該模式是從資料倉儲中將資料載入到快取中,從而提高訪問速度的一種模式。該模式可以有效的提高效能,同時也能一定程度上保證快取中的資料和資料倉儲中的資料的一致性,和同步資料到資料倉儲中。1 讀請求常見流程 最佳實踐 應用首先會判斷快取是否有該資料,快取命中直接返回資料,快取未命中即快取穿透到資料庫,從資料...