互联网软件的快速开发,用户体验是判断软件质量的重要原因,因此缓存是必不可少的工件。
在多线程高的并发场景中,缓存通常是密不可分的。您需要根据不同的应用程序场景选择不同的缓存,例如Redis,Memcached和Local(在此过程中)缓存等分布式缓存,例如Ehcache,guavacache,guavacache,guavacache,guavacache,guavacache,guavacache,guavacache,guavacache ,,,,,,,,,guavacache,,,, guavacache,咖啡因。
说到番石榴缓存,许多人不会不熟悉。这是在Google Guava工具包中非常方便且易于使用本地化缓存实现。基于LRU算法实现,它支持多个缓存到期策略。
但是,番石榴缓存的性能是最好的吗?也许,一次,它的性能非常好。吧,扬格河的So the the the the Yangtze River的前浪始终将具有更好的技术。性能比番石榴缓存:咖啡因。
方案1,8个线程阅读,100%阅读操作
方案2和6个线程读取,2个线程写作,即75%的阅读操作,25%的写作操作
场景3:8个线程写作,100%写作操作
看到这一点,您应该给反手666吗?这是官方的测试结果。尽管咖啡因是基于Guava Cache的,但这些数据肯定会引起您的兴趣。
因此,问题是,如何使用它?不用担心,客人,仔细听我说。
我们项目中的用途也很简单。首先,引入了依赖项。我的版本编号是最新的。您可以根据自己的需求选择版本号。
下面显示了加载代码的简单测试,以通过Cachebuilder构建缓存。设置初始化值,最大值,过度额定时间以及找不到数据时的加载逻辑。
它分为咖啡因中的两个缓存,一个是边界缓存,另一个是无限的缓存。无限的缓存无需过期,没有边界。
边界缓存提供三个过期的API
最后,此API和前两个API是相互排斥的。您需要告诉缓存框架他应该在一定时间到期,即通过重写创建,更新和访问的方法来获得特定的到期时间。
咖啡因提供了RefresHafterWrite()方法,让我们在写作后更新策略。
一天后,上述方法不会刷新,因为1天后可以再次刷新缓存。如果没有人访问,它将永远不会刷新。
他自动做什么?自动刷新后,只有读取操作,也就是说,我们的afterRead()方法,其中一种称为“刷新”()。他将根据您是同步还是异步。
使用caffeine.recordstats(),您可以打开统计信息集合。cache.stats()方法返回提供统计信息的cachestats。
统计信息中包含的数据如下:
使用后,感觉真的很酷,从guavacache切换的成本也很低。尝试一下!我想记住关注我?
微信公共帐户:高级体系结构高级体系结构
更多文章在这里,我想记得给我一些吗?,感谢您的支持!
公共帐户文章同时更新!关注我,不要迷路!