码迷,mamicode.com
首页 > 其他好文 > 详细

三种缓存淘汰策略

时间:2019-01-30 00:27:12      阅读:213      评论:0      收藏:0      [点我收藏+]

标签:思路   删除   次数   nbsp   hashmap   val   策略   缓存   recent   

1, FIFO

先进先出,底层是利用双向链表,新来的数据放到链表的尾部,如果链表塞满了就删除头部的。

 

2, LFU

最近最少使用算法。思路就是如果一个数据在最近一段时间内使用次数最少,那么将来一段时间使用的可能性也很少。

LFU 是基于访问次数的。

实现:两个HASHMAP, 一个是用来存储数据的, key-value. 一个是用来存储次数的, key-time. 

当访问一个key 的时候就在 key-time, 也就是的第二个hashmap 对应的time 加1.

删除的时候就寻找最少time 的那个。

 

3, LRU

least recently used

如果数据最近被访问过,那么将来访问的几率也很高。

实现:新增加的数据放到头部。每当缓存命中,就把数据放到尾部。删除的时候就删除尾部的数据

三种缓存淘汰策略

标签:思路   删除   次数   nbsp   hashmap   val   策略   缓存   recent   

原文地址:https://www.cnblogs.com/vincentgwzhang/p/10336180.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!