1, FIFO
先进先出,底层是利用双向链表,新来的数据放到链表的尾部,如果链表塞满了就删除头部的。
2, LFU
最近最少使用算法。思路就是如果一个数据在最近一段时间内使用次数最少,那么将来一段时间使用的可能性也很少。
LFU 是基于访问次数的。
实现:两个HASHMAP, 一个是用来存储数据的, key-value. 一个是用来存储次数的, key-time.
当访问一个key 的时候就在 key-time, 也就是的第二个hashmap 对应的time 加1.
删除的时候就寻找最少time 的那个。
3, LRU
least recently used
如果数据最近被访问过,那么将来访问的几率也很高。
实现:新增加的数据放到头部。每当缓存命中,就把数据放到尾部。删除的时候就删除尾部的数据
原文地址:https://www.cnblogs.com/vincentgwzhang/p/10336180.html
时间: 2024-11-10 16:11:46