LRU演算法 快取演算法

2021-10-24 05:06:16 字數 635 閱讀 3235

lru演算法主要用於快取演算法,在節省資源的情況下提高資料訪問效率

篩選熱點資料:對不斷訪問的資料進行篩選淘汰,剩下的資料就為熱點資料;相對而言,釋放最近未被訪問資料占用的空間也是採用lru演算法。

1 lru的實現——鍊錶

使用乙個鍊錶儲存快取資料

(1)新資料插入到鍊錶頭部;

(2)每當快取命中(即快取資料被訪問),則將資料移到鍊錶頭部;

(3)當鍊表滿的時候,將鍊錶尾部的資料丟棄。

鍊錶實現的優缺點:

2 lru的實現——雜湊鍊錶

當乙個位置被命中之後,就將該位置調整到煉表頭的位置,新加入的資料也直接加到煉表頭中。這樣,在多次進行cache操作後,最近被命中的,就會被向煉表頭方向移動,而沒有命中的,就向鍊錶後面移動,鍊錶尾則表示最近最少使用的資料。當需要替換內容時候,鍊錶的最後位置就是最少被命中的位置,我們只需要淘汰鍊錶最後的部分即可。

使用雜湊鍊錶的好處就是在命中資料時,無序遍歷鍊錶。

參考部落格:

LRU快取演算法

為什麼要有lru快取演算法 我們用快取來存放以前讀取的資料,而不是直接丟掉,這樣,再次讀取的時候,可以直接在快取裡面取,而不用再重新查詢一遍,這樣系統的反應能力會有很大提高。但是,當我們讀取的個數特別大的時候,我們不可能把所有已經讀取的資料都放在快取裡,畢竟記憶體大小是一定的,我們一般把最近常讀取的...

快取淘汰演算法 LRU演算法

lru least recently used,最近最少使用 演算法根據資料的歷史訪問記錄來進行淘汰資料,其核心思想是 如果資料最近被訪問過,那麼將來被訪問的機率也更高 最常見的實現是使用乙個鍊錶儲存快取資料,詳細演算法實現如下 新資料插入到鍊錶頭部 每當快取命中 即快取資料被訪問 則將資料移到鍊錶...

LRU演算法 快取淘汰演算法

lru least recently used,最近最少使用 演算法根據資料的歷史訪問記錄來進行淘汰資料,其核心思想是 如果資料最近被訪問過,那麼將來被訪問的機率也很高 反過來說 如果資料最近這段時間一直都沒有訪問,那麼將來被訪問的概率也會很低 兩種理解是一樣的 常用於頁面置換演算法,是為虛擬頁式儲...