Caffine是什么?
Caffeine是⼀个基于Java 8的⾼性能,接近最佳的缓存库
Caffine有什么特⾊?
⾃动将条⽬加载到缓存中,可选择异步加载
基于频率和新近度超过最⼤值时的基于⼤⼩的驱逐
⾃上次访问或上次写⼊以来测量的条⽬的基于时间的到期
当第⼀个条⽬的陈旧请求发⽣时,异步刷新
密钥⾃动包含在弱引⽤中
值⾃动包含在弱引⽤或软引⽤中
被驱逐(或以其他⽅式删除)条⽬的通知
写⼊传播到外部资源
累积缓存访问统计信息
W-Tiny-LFU实现原理分析
Count-Min Sketch。基于滑动窗⼝的时间衰减设计机制,借助于⼀种简易的reset操作:每次添加 ⼀条记录到Sketch的时候,都会给⼀个计数器上加1,当计数器达到⼀个尺⼨W的时候,把所有记 录的Sketch数值都除以2,该reset操作可以起到衰减的作⽤
参考:
https://juejin.im/post/5b8df63c6fb9a019e04ebaf4(深入解密来自未来的缓存-Caffeine)
https://juejin.im/post/59f06d946fb9a0451968cadc([译] 高性能 Java 缓存库 — Caffeine)
https://wujiazhen2.github.io/2018/09/30/Caffeine/(高性能java缓存库-Caffeine)
https://www.jianshu.com/p/15d0a9ce37dd(Caffeine Cache 进程缓存之王)