系統設計 中階

分散式快取設計:Redis 在系統架構中的角色

AI 練習作答

分散式快取設計

快取層的位置

  • CDN:靜態資源(圖片、JS/CSS)
  • 應用層快取:in-process cache(如 LRU Cache),最快但不共享
  • 分散式快取:Redis / Memcached,多個服務共享
  • 資料庫查詢快取:DB 層的結果集快取

Redis 核心資料結構與應用

資料結構 應用場景
String Session 儲存、計數器、分散式鎖
Hash 使用者資料、商品詳情
List 訊息佇列(LPUSH/BRPOP)、最新動態
Set 標籤、去重、共同好友
Sorted Set 排行榜、延遲佇列

快取問題三大件

快取穿透(Cache Penetration) 查詢不存在的 key,每次都打到 DB 解法:Bloom Filter 預先過濾 / 快取空值

快取擊穿(Cache Breakdown) 熱點 key 過期瞬間大量請求打到 DB 解法:Mutex Lock / 邏輯過期(不設 TTL,異步更新)

快取雪崩(Cache Avalanche) 大量 key 同時過期 解法:TTL 加隨機抖動 / 多層快取

面試加分:Redis 的 Pub/Sub vs Stream 的區別——Stream 是持久化的,支援消費者組和歷史訊息回放,更像輕量級 Kafka。

✦ AI 模擬面試

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

登入後即可使用 AI 評分