兩種常見的緩存淘汰算法LFU&LRU&LIRS

LFU(Least Frequently Used)算法根據數據的歷史訪問頻率來淘汰數據,其核心思想是「若是數據過去被訪問屢次,那麼未來被訪問的頻率也更高」。算法

    經過一個隊列保存內容訪問頻次,全部數據按訪問頻次排序,想次次數的按時間排。須要淘汰數據的時候直接從隊列裏刪除頻次最小的。緩存

 

LRU(Least recently used,最近最少使用)算法根據數據的歷史訪問記錄來進行淘汰數據,其核心思想是「若是數據最近被訪問過,那麼未來被訪問的概率也更高」。spa

    經過一個隊列記錄數據,新數據或再次訪問的老數據放在隊列頭,淘汰的時候從隊列尾淘汰。.net

 

LRU-K中的K表明最近使用的次數,所以LRU能夠認爲是LRU-1。LRU-K的主要目的是爲了解決LRU算法「緩存污染」的問題,其核心思想是將「最近使用過1次」的判斷標準擴展爲「最近使用過K次」。blog

    經過兩個隊列記錄數據,一個是新數據隊列,另外一個是達到K次訪問的隊列,新數據隊列能夠經過FIFO方式處理也能夠根據LRU方式處理,當到達K次後移動到K次隊列。排序

 

http://blog.csdn.net/jake_li/article/details/50659868隊列

http://flychao88.iteye.com/blog/1977653it

 

LRU的改進算法LIRS

http://blog.csdn.net/IT_YUAN/article/details/8488876ast

相關文章
相關標籤/搜索