Cache
快取演算法 - LRU 和 LFU 快取替換策略,用於提高系統效能與記憶體管理效率。
LRU vs LFU 選擇指南
| 比較項目 | LRU (Least Recently Used) | LFU (Least Frequently Used) |
|---|---|---|
| 原理 | 移除最近最少使用的項目 | 移除使用頻率最低的項目 |
| 適用場景 | 近期存取的資料可能會被再次存取 | 熱門資料長期存取,冷門資料應盡快移除 |
| 實作難度 | 簡單(雙向鏈結串列 + HashMap) | 複雜(需要計算頻率,可能用 min-heap 或計數器) |
| 優點 | 低開銷,適用於短期存取模式 | 可保留長期熱門的資料,不會因短期未存取就被移除 |
| 缺點 | Cache Pollution (快取汙染):短期熱門但後續不再存取的資料仍可能佔據快取空間 | LFU Aging Issue (老化問題):舊的熱門資料可能長期佔據快取,導致新資料無法進入 |
LRU 適用場景
- 作業系統 (OS Page Replacement, CPU Cache)
- 瀏覽器快取、資料庫快取、CDN
- 最近存取過的資料,未來仍可能存取
LFU 適用場景
- 搜尋引擎、廣告投放、推薦系統
- 長期熱門內容(熱門電影、音樂、新聞)
- 避免短期熱門但迅速冷卻的資料佔據快取