-
- 对于避免不需要的数据还在存,浪费资源,所以需要用各种算法来淘汰掉不需要、不活跃的数据。
-
为什么要用淘汰算法
-
有哪些淘汰算法
-
FIFO
-
LRU
-
LFU
-
W-Tiny-LFU
-
-
FIFO:先进先出
-
在这种淘汰算法中,先进入缓存的会先被淘汰
-
命中率很低
-
-
-
Least recently used,最近最少使用
-
-
为什么要用LRU算法
-
根据数据的历史访问记录来进行淘汰数据,其核心思想是“如果数据最近被访问过,那么将来被访问的几率也更高”
-
-
- 如果数据最近被使用,那么就把数据放在队首,这样离淘汰又更久了一些,而一些不经常使用的就会被顶到队尾,然后被淘汰掉。
-
-
为什么要用LFU算法
-
算法根据数据的历史访问频率来淘汰数据,其核心思想是“如果数据过去被访问多次,那么将来被访问的频率也更高”
-
-
LFU算法原理剖析
-
新加入数据插入到队列尾部(因为引用计数为1)
-
队列中的数据被访问后,引用计数增加,队列重新排序;
-
-
-
-
复杂度
-
存储成本
-
-
本文作者为DBC,转载请注明。