
前言
資料結構跟演算法是程式設計師的內功,在中小型系統懂這兩樣東西效用可能有限,但在大型系統中熟不熟用資料結構跟演算法做出來的效益會天差地遠
對於常使用的物件和變數我們會放置在 Redis 上( cache server ),但記憶體有限,我們想放的東西無限,造就無法將所有物件都存放在 Redis 或 Server Memory 上.
假如你有設定過 Redis config 你會看到一個 property maxmemory_policy
來管理如何淘汰,記憶體中的物件
- volatile-lru
- allkeys-lru
上面有個名稱 LRU (Least Recently Used Cache) 代表甚麼意涵呢?稍後會跟大家做解釋
LRU 算法概念
LRU (Least Recently Used Cache) 顧名思義,會記憶體不夠用時優先保留最近常使用的 Cache 資料,並剔除最舊的資料來緩解壓力
這個算法策略可以確保 Hot Data 在記憶體不足時不會被刪除