您现在的位置是:亿华云 > 知识
本地缓存Ehcache的应用实践
亿华云2025-10-04 02:39:37【知识】3人已围观
简介来源:京东云开发者java本地缓存包含多个框架,其中常用的包括:Caffeine、Guava Cache和Ehcache, 其中Caffeine号称本地缓存之王,也是近年来被众多程序员推崇的缓存框架,
来源:京东云开发者
java本地缓存包含多个框架,本地其中常用的缓存包括:Caffeine、Guava Cache和Ehcache,应用 其中Caffeine号称本地缓存之王,实践也是本地近年来被众多程序员推崇的缓存框架,同时也是缓存SpringBoot内置的本地缓存实现。但是应用除了Caffeine之外,还有一款也不错的实践本地缓存框架Ehcache,具有快速、本地灵活,缓存并支持内存和磁盘缓存,应用且提供了丰富的实践配置选项和缓存策略,接下来一起了解下Ehcache。本地
一、缓存Ehcache是应用什么
Ehcache是一个开源的Java本地缓存框架,它提供了快速、灵活的缓存解决方案。Ehcache支持内存和磁盘缓存,并且可以与各种Java应用程序集成,包括基于Spring框架的应用程序。它提供了丰富的高防服务器配置选项和缓存策略,可以帮助开发人员提高应用程序的性能和响应速度。Ehcache还支持分布式缓存,可以与其他缓存系统集成,如Terracotta集群。
二、Ehcache特点
1、 分层存储:
堆内存储:利用 Java 的堆上 RAM 内存来存储缓存数据。该层使用与 Java 应用程序相同的堆内存,所有这些内存由 JVM 垃圾收集器扫描(GC)。JVM 使用的堆空间越多,垃圾收集暂停对应用程序性能的影响就越大。该存储速度非常快,但通常资源有限。
堆外存储:大小受可用 RAM 的限制。不受 Java 垃圾收集 (GC) 的影响。速度相当快,但比堆上存储慢,因为在存储和重新访问数据时必须将数据移入和移出 JVM 堆。
磁盘存储:利用磁盘(文件系统)来存储缓存数据。这种类型的存储资源通常非常丰富,但比基于 RAM 的存储慢一些。对于所有使用磁盘存储的应用程序,网站模板建议使用快速且专用的SSD磁盘来优化吞吐量。
集群存储(分布式):此数据存储是远程服务器上的缓存。由于网络延迟以及建立客户端/服务器一致性等因素,集群存储会带来额外的性能损耗,性能上会更低一些。
2、 灵活有效期:
没有期限:缓存映射在应用存在下永远不会过期;
生存周期:缓存映射将在创建后的固定时间后过期;
空闲时间:缓存映射将在上次访问后的固定持续时间后过期;
定制有效期:通过重载ExpiryPolicy接口实现个性化的过期判断;
接口如下:
返回值定义:
Duration.ZERO:表示立即过期
Duration.INFINITE:映射永远不会过期
Duration.设置具体时间:设置对应的时间后过期
Duration.设置时间周期:设置对应的周期后过期
Duration设置null:之前的过期时间保持不变
3、淘汰策略
LFU:访问频率值小的缓存淘汰。
LRU:基于最近访问时间来进行淘汰。
FIFO:数据项最早进入缓存的时间来进行淘汰。
三、缓存原理
以三层为例:堆内存,堆外存储,本地磁盘存储。
架构图:
说明:cache-manager、cache、element为Ehcache本地缓存的核心,通过数据写入的事务操作保证个层间的一致性。云服务器同时基于存储变更监听程序,针对变更的数据以及满足淘汰策略数据进行清理,亦或持久化至本地磁盘;
流程图(基于源码整理):
待补充
四、实际应用
1、pom引入:
<dependency><groupId>org.ehcache</groupId><artifactId>ehcache</artifactId><version>3.10.0</version></dependency><dependency><groupId>javax.cache</groupId><artifactId>cache-api</artifactId></dependency>2、创建实例:
/很赞哦!(792)
相关文章
- 4、待所有域名查询结束后可在右侧点击导出结果,即可以excel的文件方式将查询到的结果导出。
- Javascript中数据类型那些可能会中招的细节
- Vue 3.0 进阶之动态组件探秘
- 如何在 JS 中的数组开头添加元素?
- 因为域名解析需要同步到DNS根服务器,而DNS根服务器会不定时刷,只有DNS根服务器刷新后域名才能正常访问,新增解析一般会在10分钟左右生效,最长不会超过24小时,修改解析时间会稍微延长。
- 凉凉,老板叫我开发一个简单的工作流引擎...
- 如何建立一个完美的 Python 项目
- 优化Kubernetes上的JVM Warm-up
- 第五步:重复第四步,直到找到正确的纪录。
- 这样写代码,真是帅到没有朋友
热门文章
站长推荐
为了避免将来给我们的个人站长带来的麻烦,在选择域名后缀时,我们的站长最好省略不稳定的后缀域名,比如n,因为我们不知道策略什么时候会改变,更不用说我们将来是否还能控制这个域名了。因此,如果站长不是企业,或者有选择的话,如果不能选择域名的cn类,最好不要选择它。
《蚂蚁呀嘿》@开发者:快用华为云 ModelArts 自己实现一个
JavaScript 闭包实践
前端基础知识整理汇总二
比较短的域名方便用户记忆和传播,它带来的好处往往会超过其他类型的域名,如果你非要域名短而且还要包含关键词,那么往往会事与愿违,现在这种域名基本上是可遇而不可求的。
Vue 3.0 进阶之动态组件探秘
2020年会消亡的4种编程语言
5个不常提及的HTML技巧