我想把记忆缓存起来,等再次见到你,就能够很快认出你。
能够说出这么有哲理的话,得益于我对缓存的理解,以及对它的看重。没有了缓存,我的人生就没有了意义。
缓存是非常重要的,工作中大部分工作可以说是和缓存打交道。由于使用广泛,所以针对缓存系统的任何优化,如果能够提高一丁点儿性能,就会让人无比兴奋。
很长一段时间,我都在用Guava
的LoadingCache
。它和ConcurrentHashMap
是非常像的,但在其上封装了一些好用的逐出策略和并发优化,就显得好用的多。
今天主要说的是Caffeine
,中文名就是咖啡因,一种容易让人精神亢奋的物质。它可以说是Guava的重写,但是效率却非常的高,青出于蓝而胜于蓝。
下图是Caffeine的一张性能测试图。可以看到它的性能,甩了GuavaCache老远。这是为什么呢?
首先要从它的作者开始说起。作者的github是( https://github.com/ben-manes ),曾经写了ConcurrentLinkedHashMap
这个类,而这个类又是GuavaCache的基础。Ben Manes
一拍脑袋,决定更上层楼。
为什么说Caffeine好?
后浪Caffeine一来&