緩存 —— 先數據庫還是先緩存(2)

  到底是先操作數據庫還是先操作緩存,取決於哪種方案可以避免數據不一致,或者數據不一致的概率更低。下面的分析會基於Cache Aside策略展開,爲什麼基於Cache Aside策略,請查看博文“緩存更新策略”

方案1:先緩存再數據庫

  先緩存再數據庫的方案,在併發讀寫情況下,會出現數據不一致的情況,如下圖所示。而且,這種不一致情況會伴隨着併發量的上升而嚴重(換句話說,併發量越大,出現的概率越大)。
在這裏插入圖片描述

方案2:先數據庫再緩存

  先數據庫再緩存的方案,在刪除緩存失敗的情況下,會出現數據不一致的情況,如下圖所示。
在這裏插入圖片描述

結論

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

參考:

  1. 緩存更新的套路
  2. 究竟先操作緩存,還是數據庫?
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章