LRU算法

2019-01-05

LRU(Least recently used,最近最少使用)算法根据数据的历史访问记录来进行淘汰数据,其核心思想是“如果数据最近被访问过,那么将来被访问的几率也更高”。

1 Java实现

1.1 使用链表

最常见的实现是使用一个链表保存缓存数据,详细算法实现如下:
链表实现

  1. 新数据插入到链表头部;
  2. 每当缓存命中(即缓存数据被访问),则将数据移到链表头部;
  3. 当链表满的时候,将链表尾部的数据丢弃。

参考文献

LRU算法的实现(Java版)
LRU算法的实现(Python版)
如何设计实现一个LRU Cache?
LRU缓存实现(Java)
缓存淘汰算法–LRU算法(java代码实现)