lru演算法主要用於快取演算法,在節省資源的情況下提高資料訪問效率
篩選熱點資料:對不斷訪問的資料進行篩選淘汰,剩下的資料就為熱點資料;相對而言,釋放最近未被訪問資料占用的空間也是採用lru演算法。
1 lru的實現——鍊錶
使用乙個鍊錶儲存快取資料
(1)新資料插入到鍊錶頭部;
(2)每當快取命中(即快取資料被訪問),則將資料移到鍊錶頭部;
(3)當鍊表滿的時候,將鍊錶尾部的資料丟棄。
鍊錶實現的優缺點:
2 lru的實現——雜湊鍊錶
當乙個位置被命中之後,就將該位置調整到煉表頭的位置,新加入的資料也直接加到煉表頭中。這樣,在多次進行cache操作後,最近被命中的,就會被向煉表頭方向移動,而沒有命中的,就向鍊錶後面移動,鍊錶尾則表示最近最少使用的資料。當需要替換內容時候,鍊錶的最後位置就是最少被命中的位置,我們只需要淘汰鍊錶最後的部分即可。
使用雜湊鍊錶的好處就是在命中資料時,無序遍歷鍊錶。
參考部落格:
LRU快取演算法
為什麼要有lru快取演算法 我們用快取來存放以前讀取的資料,而不是直接丟掉,這樣,再次讀取的時候,可以直接在快取裡面取,而不用再重新查詢一遍,這樣系統的反應能力會有很大提高。但是,當我們讀取的個數特別大的時候,我們不可能把所有已經讀取的資料都放在快取裡,畢竟記憶體大小是一定的,我們一般把最近常讀取的...
快取淘汰演算法 LRU演算法
lru least recently used,最近最少使用 演算法根據資料的歷史訪問記錄來進行淘汰資料,其核心思想是 如果資料最近被訪問過,那麼將來被訪問的機率也更高 最常見的實現是使用乙個鍊錶儲存快取資料,詳細演算法實現如下 新資料插入到鍊錶頭部 每當快取命中 即快取資料被訪問 則將資料移到鍊錶...
LRU演算法 快取淘汰演算法
lru least recently used,最近最少使用 演算法根據資料的歷史訪問記錄來進行淘汰資料,其核心思想是 如果資料最近被訪問過,那麼將來被訪問的機率也很高 反過來說 如果資料最近這段時間一直都沒有訪問,那麼將來被訪問的概率也會很低 兩種理解是一樣的 常用於頁面置換演算法,是為虛擬頁式儲...