文章插图
- 所有的新数据都会进入Eden 。
- Eden满了,淘汰进入Probation 。
- 如果在Probation中访问了其中某个数据,则这个数据升级为Protected 。
- 如果Protected满了又会继续降级为Probation 。
- 如果攻击者大于受害者,那么受害者就直接被淘汰 。
- 如果攻击者<=5,那么直接淘汰攻击者 。这个逻辑在他的注释中有解释:
文章插图
- 他认为设置一个预热的门槛会让整体命中率更高 。
- 其他情况,随机淘汰 。
对于熟悉Guava的玩家来说如果担心有切换成本,那么你完全就多虑了,caffeine的api借鉴了Guava的api,可以发现其基本一模一样 。
文章插图
顺便一提的是,越来越多的开源框架都放弃了Guava cache,比如Spring5 。在业务上我也自己曾经比较过Guava cache和caffeine最终选择了caffeine,在线上也有不错的效果 。所以不用担心caffeine不成熟,没人使用 。
7、最后本文主要讲了爱奇艺的缓存之路和本地缓存的一个发展历史(从古至今到未来),以及每一种缓存的实现基本原理 。当然要使用好缓存光是这些仅仅不够,比如本地缓存如何在其他地方更改了之后同步更新,分布式缓存,多级缓存等等 。
推荐阅读
- 快收藏! 30 分钟包你学会 AWK
- 5款茶有效助你减掉腹部脂肪
- 律师|疫情之下,你知道赚钱的职业还有哪些吗?
- 一 鐘乳酒的功效与作用
- 豬膽酒的功效与作用
- 衰老|不化妆出门是一种什么感觉?
- 冬季饮食的五大误区,你中招了吗?
- 8款保健茶助你轻松下火治溃疡
- 汽车打不着火怎么办?除了花钱救援,老司机告诉你几个小妙招
- 5大养生花草茶助你春季驱寒邪