Post

Cache algorithms

这几天在看一些缓存算法,先熟悉熟悉

  • Bélády’s Algorithm
  • Least Recently Used (LRU)
  • Most Recently Used (MRU)
  • Pseudo-LRU (PLRU)
  • Random Replacement (RR)
  • Segmented LRU (SLRU)
  • 2-way set associative
  • Direct-mapped cache
  • Least-Frequently Used (LFU)
  • Low Inter-reference Recency Set (LIRS)
  • Adaptive Replacement Cache (ARC)
  • Clock with Adaptive Replacement (CAR)
  • Multi Queue (MQ)

Least Recently Used (LRU)

LRU的缓存方案是在加入一个新的文件,这时如果缓存空间已满且不包含这个文件,移除掉最近最少使用的文件.实现起来也很简单,只说几个关键点:

  • 取值的时候把key更新到最新
  • 放入值的时候先检查key,不存在的话判断大小
    • 可以直接放入,放入到第一个
    • 空间不足,移除最后一个,判断大小,不行就继续移除直到可以容下文件

链表的理解起来感觉好理解一点,原文查看 懒惰的肥兔 pdf 版本

//待编辑

This post is licensed under CC BY 4.0 by the author.