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