Spring boot Caffeine缓存

Spring boot Caffeine缓存
本地缓存解决方案-Caffeine Cache
深入解密来自未来的缓存-Caffeine

caffeine vs ehcache
Ehcache介绍及整合Spring实现高速缓存

全网最权威的Caffeine教程

缓存淘汰算法 LRU&LFU&W-TinyLFU

Caffeine Cache 进程缓存之王

Caffeine 详解 —— Caffeine 使用

Caffeine高性能设计
判断一个本地缓存的好坏最核心指标就是命中率和内存占用,影响命中率的因素有很多,比如业务场景,淘汰策略,清理策略,缓存容量

W-TinyLFU 淘汰算法的整体设计
淘汰策略是影响缓存命中率的很重要的因素,我们常用的有LRU或则LFU。W-TinyLFU很明显是一种变种的 LFU 的淘汰算法。

LRU和LRU的缺点
LRU实现非常简单,性能也非常好。LRU对突发的稀疏流量(sparse bursts)表现很好,但同时也会产生缓存污染,比如偶然性的要对全量数据进行遍历,那么“历史访问记录”就会被刷走,造成污染。也就是冷数据会顶掉热数据

如果数据的分布在一段时间内是固定的话,那么LFU可以达到最高的命中率。但是有两个很大的缺点:

维护每个记录项的频率信息,这是个巨大的开销;
对突发性的稀疏流量无力。
针对LRU和LFU都有很多改良算法,比如基于LRU的ARC等。

TinyLFU
TinyLFU就是基于LFU的改良算法。

解决LFU的第一个缺点是采用了Count–Min Sketch算法。

解决LFU的第二个缺点是让记录尽量保持相对的“新鲜”(Freshness Mechanism),并且当有新的记录插入时,可以让它跟老的记录进行“PK”,输者就会被淘汰,这样一些老的、不再需要的记录就会被剔除。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值