高併發場景下,到底先更新快取還是先更新資料庫

2021-10-14 15:35:38 字數 704 閱讀 6906

在大型系統中,為了減少資料庫壓力通常會引入快取機制,一旦引入快取又很容易造成快取和資料庫資料不一致,導致使用者看到的是舊資料。為了減少資料不一致的情況,更新快取和資料庫的機制顯得尤為重要,接下來帶領大家踩踩坑。

cache aside也就是旁路快取,是比較常用的快取策略。

(1)讀請求常見流程

cache aside 讀請求

應用首先會判斷快取是否有該資料,快取命中直接返回資料,快取未命中即快取穿透到資料庫,從資料庫查詢資料然後回寫到快取中,最後返回資料給客戶端。

(2)寫請求常見流程

cache aside 寫請求

首先更新資料庫,然後從快取中刪除該資料。

看了寫請求的圖之後,有些同學可能要問了:為什麼要刪除快取,直接更新不就行了?這裡涉及到幾個坑,我們一步一步踩下去。

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

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

併發環境下,先運算元據庫還是先操作快取?

在分布式系統中,快取和資料庫同時存在時,如果有寫操作的時候,先運算元據庫還是先操作快取呢?先思考一下,可能會存在哪些問題,再往下看。下面我分幾種方案闡述。假設有一寫 執行緒a 一讀 執行緒b 操作,先操作快取,在運算元據庫。如下流程圖所示 1 執行緒a發起乙個寫操作,第一步del cache 2 執...

高併發場景下快取處理思路總結

在實際的開發當中,我們經常需要進行磁碟資料的讀取和搜尋,因此經常會有出現從資料庫讀取資料的場景出現。但是當資料訪問量次數增大的時候,過多的磁碟讀取可能會最終成為整個系統的效能瓶頸,甚至是壓垮整個資料庫,導致系統卡死等嚴重問題。常規的應用系統中,我們通常會在需要的時候對資料庫進行查詢,因此系統的大致結...