大家好,我是爱学习的了不起!
在项目中用到的除了分布式缓存,还有本地缓存,例如:Guava、Encache,使用本地缓存能够很大程度上提升程序性能,本地缓存是直接从本地内存中读取,没有网络开销。
今天给大家介绍一个高性能的 Java 缓存库 – Caffeine 。
简介
Caffeine是基于Java8 的高性能缓存库,借鉴了 Guava 和 ConcurrentLinkedHashMap 的设计经验,拥有更高的缓存命中率和更快的读写速度。
性能比Guava更强
功能特性
- 基于时间的回收策略:包括写入时间和访问时间
- 基于容量的回收策略:一种是基于容量大小,一种是基于权重大小,两者只能取其一。
- 基于数量回收策略
- 基于引用的回收策略:GC并且内存不足时,会触发软引用回收策略;GC并且内存不足时,会触发软引用回收策略。
- value自动封装弱引用或软引用
- 缓存访问统计
使用方式
引入依赖
1 | <dependency> |
配置缓存类
1 |
|
这种方式的弊端是所有的缓存都放在一起,最好的使用方式是每一个缓存单独创建缓存对象。
使用缓存
1 | public User getOne(Wrapper<User> queryWrapper, boolean throwEx) { |
总结
Caffeine 是当前优秀的内存缓存框架,无论读还是写的效率都远高于其他缓存,从 Spring5 开始的默认缓存实现就将 Caffeine 代替原来的Google Guava,支持多种回收策略,感兴趣的小伙伴赶快去试试吧~
写在最后
欢迎加我微信,邀请加入 交流群,目前群里都在讨论整理更多GPT玩法,教你如何更好的调教使用GPT,提升效率,甚至如何使用GPT赚钱等等,欢迎围观~
问君能有几多愁,开源项目解千愁,我们下期再见!
大家的点赞、收藏和评论对了不起非常重要,如文章对你有帮助还请转发支持下,谢谢!