緩存淘汰,又稱為緩存逐出(cache replacement algorithms或者cache replacement policies),是指在存儲空間不足的情況下,緩存系統(tǒng)主動釋放一些緩存對象獲取更多的存儲空間。一般LRU用的比較多,可以重點了解一下。
FIFO 先進先出(First In First Out)是一種簡單的淘汰策略,緩存對象以隊列的形式存在,如果空間不足,就釋放隊列頭部的(先緩存)對象。一般用鏈表實現(xiàn)。
LRU 最近最久未使用(Least Recently Used),這種策略是根據(jù)訪問的時間先后來進行淘汰的,如果空間不足,會釋放最久沒有訪問的對象(上次訪問時間最早的對象)。比較常見的是通過優(yōu)先隊列來實現(xiàn)。
LFU 最近最少使用(Least Frequently Used),這種策略根據(jù)最近訪問的頻率來進行淘汰,如果空間不足,會釋放最近訪問頻率最低的對象。這個算法也是用優(yōu)先隊列實現(xiàn)的比較常見。
更進一步的談?wù)凴edis緩存淘汰的8個模式,可以參考上文Redis問答部分。