產品實體頁:Redis 在哪些地方做了什麼設計取捨。每條一句話,細節在連過去的概念卡裡。
想到「某段邏輯」時從概念卡進來;想到「Redis 是怎麼做的」時從這頁進來。

💾 持久化

  • AOF:每個寫入指令以 RESP 格式追加到檔案,重啟時重放;開了 AOF 後預設每秒 fsync,約丟 1 秒(最壞約 2 秒) → 工具-預寫日誌與崩潰復原
  • 拿 Redis 當延遲佇列時的資料風險:AOF everysec 最多丟 1 秒,純 RDB 可能丟掉整個快照週期,要靠對帳任務補 → 工具-延遲任務方案選型

🧱 資料結構

  • Sorted set 選跳表,不選 B+ 樹或紅黑樹:純記憶體沒有磁碟 I/O 可省、範圍查詢好做、程式碼短,再加上 span 就能算排名 → 工具-跳表
  • 型別對外穩定、編碼對內會換:資料少時用連續緊湊的結構省記憶體,資料多時換成雜湊表或跳表保效能 → 工具-Redis資料型別的底層編碼

⚙️ 執行模型

  • 命令執行是單執行緒:單條命令天然原子,但一個 N 很大的 O(N) 指令會讓所有 client 一起等,所以要把大操作拆成很多次小操作 → 工具-Redis單執行緒下的阻塞風險

📚 來源