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

2021-10-07 11:37:19 字數 553 閱讀 9388

到底是先運算元據庫還是先操作快取,取決於哪種方案可以避免資料不一致,或者資料不一致的概率更低。下面的分析會基於cache aside策略展開,為什麼基於cache aside策略,請檢視博文「快取更新策略」。

先快取再資料庫的方案,在併發讀寫情況下,會出現資料不一致的情況,如下圖所示。而且,這種不一致情況會伴隨著併發量的上公升而嚴重(換句話說,併發量越大,出現的概率越大)。

先資料庫再快取的方案,在刪除快取失敗的情況下,會出現資料不一致的情況,如下圖所示。

兩種方案都可能出現資料不一致的情況,但在實際情況中,方案2中刪除快取失敗的概率要遠小於方案1高併發下資料不一致概率的,因此個人推薦先運算元據庫再操作快取

參考:快取更新的套路

究竟先操作快取,還是資料庫?

先刪快取還是先刪資料庫

在論壇上看到好多人說先刪除快取在更新資料庫,這種邏輯是錯誤的,第一種情況先刪快取在刪資料庫 在多執行緒環境下,當乙個執行緒把快取刪掉之後,另乙個執行緒都快取,都不到快取就會直接讀庫,讀到資料後就會更新快取,先前的執行緒呢,才更新資料庫,會造成快取髒讀的情況,很容易產生快取髒讀。第二種情況先刪資料庫再...

先刪資料庫還是先刪快取

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

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

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