如何对图片进行缓存

设计缓存算法的时候需要考虑

  • 哪些应该保存
  • 哪些应该丢弃
  • 什么时候丢弃
  • 获取数据的成本和缓存数据的成本
  • 缓存价值(命中率)

LRU(Least Recently Used)算法的实现

  • LRU内部包含一个LinkedHashMap
  • 统计监控(额外的开销,可以监控算法的有效性)
1
2
3
4
5
private int putCount;//放入个数
private int createCount;//创建个数
private int evictionCount;//弹出个数
private int hitCount;//命中个数
private int missCount;//没命中个数

LFU(Least Frequently Used)