背景
在高並發的業務場景下,數據庫的性能瓶頸往往是用戶並發訪問過大造成的,所以會有個Redis做個緩沖。
case
一、A寫,B讀,
寫:1.淘汰cache 2.寫操作(由於各種原因消耗了1s) 3.更新cache
讀:1.讀cache 2.讀DB 3更新cache
在成功寫入之前就讀取了,會導致讀取到臟數據,cache不是最新的數據
二、主從分離
同理,在有主從延遲這個過程中,會讓讀操作讀取到臟數據
解決:
1. 淘汰機制,每次寫入一個數據后,隔幾秒去淘汰一次緩存
2.binlog,Redis根據binlog中的記錄對Redis進行更新