why? when? what?
之前面試有問到 LRU 自己沒好好準備沒答好,現在發現自己竟然把 LRU 理解成了 LFU 呃…
每個算法都有自己的應用場景以及優缺點。各種緩存算法的核心區別在於它的淘汰機制。而這個淘汰機制主要參考這兩個維度:最後被訪問的時間和最近被訪問的頻率次數。
LRU(Least Recently Used ):淘汰最後被訪問時間最久的元素。
缺點:可能會由於一次冷數據的批量查詢而誤導大量熱點的數據。
LFU(Least Frequently Used):淘汰最近訪問頻率最小的元素。
缺點:1. 最新加入的數據常常會被踢除,因爲其起始方法次數少。 2. 如果頻率時間度量是1小時,則平均一天每個小時內的訪問頻率1000的熱點數據可能會被2個小時的一段時間內的訪問頻率是1001的數據剔除掉