有沒有看過緩存框架的源碼停蕉?緩存空間不夠怎么辦?
常見的緩存策略是FIFO钙态、LRU慧起、LFU
首先,我們來說說
FIFO:
FIFO册倒,意思是First in? First out蚓挤,中文翻譯為先進先出,新插入的數據放在FIFO隊列的尾部,數據在FIFO隊列中順序移動灿意,淘汰FIFO隊列中頭部的數據
LUR:
LRU估灿,意思是Least Recently Used,中文翻譯為最近很少使用缤剧,根據數據的歷史訪問記錄來進行淘汰馅袁,如果數據最近被訪問過,那么將來被訪問的幾率也就更高
新數據插入鏈表的頭部荒辕,每當緩存數據被訪問汗销,則數據移動到鏈表頭部。當鏈表滿的時候抵窒,將鏈表尾部的數據丟棄弛针。
LFU:
LFU,意思是Least Frequently Used李皇,中文翻譯為最新不經常使用钦奋,根據數據的歷史訪問記錄頻率來進行淘汰,如果數據最近被訪問頻率很高疙赠,那么將來被訪問的幾率也就更高
把數據加入鏈表中付材,按頻次排序,一個數據被訪問過圃阳,他的頻次+1厌衔,發(fā)生淘汰的時候,把頻次低的淘汰掉