LRU-K (基於 K 次最近使用) 緩存
LRU-K 是一種跟蹤訪問頻率的 LRU 緩存。
概覽
LRU-K 是 LRU 的改進版本,跟蹤每個鍵的訪問頻率(K 次)。當緩存已滿時,它優先淘汰訪問頻率較低的鍵,而不是簡單地淘汰最近最少使用的鍵。
特點
- 命中率: 88%
- 內存佔用: 中
- 並發性能: 中
- 實現複雜度: 中
使用場景
- 平衡近期性和頻率
- 混合訪問模式
- 需要考慮訪問頻率的場景
快速開始
安裝
基本使用
工作原理
LRU-K 維護每個鍵的訪問歷史(最近 K 次訪問):
淘汰時,考慮兩個因素:
- 最近訪問時間
- 訪問頻率(基於最近 K 次訪問)
API 參考
構造函數
主要方法
性能特徵
- 時間複雜度:
- Set: O(1)
- Get: O(1)
- Delete: O(1)
- 空間複雜度: O(n * k),其中 n 是緩存容量,k 是跟蹤的訪問次數
最佳實踐
- 選擇適當的 K 值: 通常 K=2 或 K=3 效果良好
- 平衡近期性和頻率: LRU-K 提供了兩者的平衡
- 混合訪問模式: 適用於既有時間局部性又有頻率局部性的場景