效能優化 中階

常見快取策略有哪些?Cache-Aside、Write-Through 和 Write-Behind 的差異?

AI 練習作答

三種主要快取策略

1. Cache-Aside(旁路快取)

最常見的策略。應用程式自己負責管理快取。

讀取流程:

1. 先查 Cache(Redis)
2. Cache Hit → 直接回傳
3. Cache Miss → 查資料庫 → 寫入 Cache → 回傳

寫入流程:

1. 寫入資料庫
2. 刪除(或更新)Cache 中的對應 key

優點: 只快取真正被存取的資料,適合讀多寫少的場景 缺點: 首次存取一定 cache miss;需自行處理 TTL 與 cache 失效


2. Write-Through(穿透寫入)

寫入時同步更新 Cache 與資料庫。

寫入資料 → 同時更新 Cache 和 DB(同步)

優點: Cache 永遠與 DB 一致,不會有 stale data 缺點: 每次寫入都要更新快取,寫入延遲較高;可能快取許多不常讀取的資料


3. Write-Behind / Write-Back(回寫)

寫入只更新 Cache,非同步批次寫回資料庫。

寫入資料 → 只更新 Cache → 非同步批次寫回 DB

優點: 寫入延遲最低,適合高寫入場景(如計數器、熱門文章閱讀數) 缺點: 若 Cache 節點故障,未同步的資料可能遺失(資料一致性風險)


比較總結

策略 一致性 寫入效能 適用場景
Cache-Aside 最終一致 普通 讀多寫少(商品詳情、用戶資料)
Write-Through 強一致 較慢 金融交易、訂單資料
Write-Behind 最終一致 最快 瀏覽數、按讚數等可容忍延遲的計數

面試加分點:提到 Cache Stampede(快取雪崩)問題與 Mutex Lock / Probabilistic Early Expiration 解法,以及 Redis 的 SETNX 實作分散式鎖。

✦ AI 模擬面試

輸入你的答案,AI 即時分析精準度與改進空間

登入後即可使用 AI 評分