到底是先操作數據庫還是先操作緩存,取決於哪種方案可以避免數據不一致,或者數據不一致的概率更低。下面的分析會基於Cache Aside策略展開,爲什麼基於Cache Aside策略,請查看博文“緩存更新策略”。
方案1:先緩存再數據庫
先緩存再數據庫的方案,在併發讀寫情況下,會出現數據不一致的情況,如下圖所示。而且,這種不一致情況會伴隨着併發量的上升而嚴重(換句話說,併發量越大,出現的概率越大)。
方案2:先數據庫再緩存
先數據庫再緩存的方案,在刪除緩存失敗的情況下,會出現數據不一致的情況,如下圖所示。
結論
兩種方案都可能出現數據不一致的情況,但在實際情況中,方案2中刪除緩存失敗的概率要遠小於方案1高併發下數據不一致概率的,因此個人推薦先操作數據庫再操作緩存。
參考: