有没看过缓存框架的源码,缓存空间不够怎么办?
一般会使用淘汰策略
常见的淘汰策略有
FIFO
、
LRU
、
LFU
能分别说下
FIFO
、
LRU
、
LFU
这些策略不
先进先出
First In
,
First Out
新访问的数据插入
FIFO
队列尾部,数据在
FIFO
队列中顺序移动,淘汰
FIFO
队列头部的数
据
最近最少使用
Least recently used
根据数据的历史访问记录来进行数据淘汰,如果数据最近被访问过,那么将来被访问的
几率也更高
新数据插入到链表头部,每当缓存数据被访问,则将数据移到链表头部,当链表满的时
候,将链表尾部的数据丢弃。
最近不经常使用
Least Frequently Used
根据数据的历史访问频率来淘汰数据,如果数据过去被访问多次,那么将来被访问的频
率也更高
把数据加入到链表中,按频次排序,一个数据被访问过,把它的频次
+1
,发生淘汰的时
候,把频次低的淘汰掉