Ehcache简介_动力节点Java学院整理
发布时间 - 2026-01-11 02:33:01 点击率:次使用Spring的AOP进行整合,可以灵活的对方法的返回结果对象进行缓存。

CachingFilter功能可以对HTTP响应的内容进行缓存。
1、主要特性
1. 快速.
2. 简单.
3. 多种缓存策略
4. 缓存数据有两级:内存和磁盘,因此无需担心容量问题
5. 缓存数据会在虚拟机重启的过程中写入磁盘
6. 可以通过RMI、可插入API等方式进行分布式缓存
7. 具有缓存和缓存管理器的侦听接口
8. 支持多缓存管理器实例,以及一个实例的多个缓存区域
9. 提供Hibernate的缓存实现
10. 等等
2、配置文件介绍(普通缓存)
<ehcache>
<!-- 指定一个文件目录,当EHCache把数据写到硬盘上时,将把数据写到这个文件目录下 -->
<diskStore path="java.io.tmpdir"/>
<!-- 设定缓存的默认数据过期策略 -->
<defaultCache
maxElementsInMemory="10000"
eternal="false"
overflowToDisk="true"
timeToIdleSeconds="0"
timeToLiveSeconds="0"
diskPersistent="false"
diskExpiryThreadIntervalSeconds="120"/>
<!--
设定具体的命名缓存的数据过期策略
cache元素的属性:
name:缓存名称
maxElementsInMemory:内存中最大缓存对象数
maxElementsOnDisk:硬盘中最大缓存对象数,若是0表示无穷大
eternal:true表示对象永不过期,此时会忽略timeToIdleSeconds和timeToLiveSeconds属性,默认为false
overflowToDisk:true表示当内存缓存的对象数目达到了maxElementsInMemory界限后,会把溢出的对象写到硬盘缓存中。注意:如果缓存的对象要写入到硬盘中的话,则该对象必须实现了Serializable接口才行。
diskSpoolBufferSizeMB:磁盘缓存区大小,默认为30MB。每个Cache都应该有自己的一个缓存区。
diskPersistent:是否缓存虚拟机重启期数据
diskExpiryThreadIntervalSeconds:磁盘失效线程运行时间间隔,默认为120秒
timeToIdleSeconds: 设定允许对象处于空闲状态的最长时间,以秒为单位。当对象自从最近一次被访问后,如果处于空闲状态的时间超过了timeToIdleSeconds属性值,这个对象就会过期,EHCache将把它从缓存中清空。只有当eternal属性为false,该属性才有效。如果该属性值为0,则表示对象可以无限期地处于空闲状态
timeToLiveSeconds:设定对象允许存在于缓存中的最长时间,以秒为单位。当对象自从被存放到缓存中后,如果处于缓存中的时间超过了 timeToLiveSeconds属性值,这个对象就会过期,EHCache将把它从缓存中清除。只有当eternal属性为false,该属性才有效。如果该属性值为0,则表示对象可以无限期地存在于缓存中。timeToLiveSeconds必须大于timeToIdleSeconds属性,才有意义
memoryStoreEvictionPolicy:当达到maxElementsInMemory限制时,Ehcache将会根据指定的策略去清理内存。可选策略有:LRU(最近最少使用,默认策略)、FIFO(先进先出)、LFU(最少访问次数)。
-->
<cache name="CACHE1"
maxElementsInMemory="1000"
eternal="true"
overflowToDisk="true"/>
<cache name="CACHE2"
maxElementsInMemory="1000"
eternal="false"
timeToIdleSeconds="200"
timeToLiveSeconds="4000"
overflowToDisk="true"/>
</ehcache>
3、配置文件介绍(分布式缓存)
1)RMI集群模式
A、手工发现
需要指定节点发现模式peerDiscovery值为manual,rmiUrls设置为另一台服务器的IP、端口和缓存名等信息。
<cacheManagerPeerProviderFactory class="net.sf.ehcache.distribution.RMICacheManagerPeerProviderFactory" properties="peerDiscovery=manual, rmiUrls=//192.168.0.12:4567/bjpowernode_cache|//192.168.0.13:4567/bjpowernode_cache" />
B、自动发现
需要指定节点发现模式peerDiscovery值为automatic自动,同时组播地址可以指定D类IP地址空间,范围从 224.0.1.0 到 238.255.255.255 中的任何一个地址。
<cacheManagerPeerProviderFactory class="net.sf.ehcache.distribution.RMICacheManagerPeerProviderFactory" properties="peerDiscovery=automatic, multicastGroupAddress=230.0.0.1, multicastGroupPort=4446, timeToLive=32" />
需要在每个cache属性中加入
<cacheEventListenerFactory class="net.sf.ehcache.distribution.RMICacheReplicatorFactory"/> <cache name="demoCache" maxElementsInMemory="10000" eternal="true" overflowToDisk="true"> <cacheEventListenerFactory class="net.sf.ehcache.distribution.RMICacheReplicatorFactory"/> </cache>
4、通过编程方式使用EhCache
//从classes目录查找ehcache.xml配置文件
CacheManager cacheManager = CacheManager.getInstance();
//从classes目录查找指定名称的配置文件
//CacheManager cacheManager = CacheManager.create(getClass().getResource("/ehcache.xml"));
//根据配置文件获得Cache实例
Cache cache = cacheManager.getCache("CACHE1");
//清空Cache中的所有元素
cache.removeAll();
//往Cache中添加元素
cache.put(new Element("s1", "11111"));
cache.put(new Element("s2", "22222"));
cache.put(new Element("s3", "33333"));
//从Cache中取得元素
Element e = cache.get("s3");
System.out.println(e.getValue());
//卸载缓存管理器
cacheManager.shutdown();
5、页面缓存
在web.xml文件中配置过滤器。此处对test_tag.jsp页面进行缓存。
<filter> <filter-name>testPageCachingFilter</filter-name> <filter-class>net.sf.ehcache.constructs.web.filter.SimplePageCachingFilter</filter-class> </filter> <filter-mapping> <filter-name>testPageCachingFilter</filter-name> <url-pattern>/test_tag.jsp</url-pattern> </filter-mapping>
在ehcache.xml文件中配置Cache节点。注意:cache的name属性必需为SimplePageCachingFilter。
<cache name="SimplePageCachingFilter" maxElementsInMemory="10" overflowToDisk="true" eternal="false" timeToIdleSeconds="100" timeToLiveSeconds="100" memoryStoreEvictionPolicy="LFU" />
# Ehcache简介
# ehcache
# 配置
# ehcache开源缓存框架_动力节点Java学院整理
# Spring+EHcache缓存实例详解
# 详解Spring MVC 集成EHCache缓存
# 详解Spring整合Ehcache管理缓存
# Spring搭配Ehcache实例解析
# Mybatis添加Ehcache支持的方法
# java web项目里ehcache.xml介绍
# 集群环境中使用ehcache_动力节点Java学院整理
# 配置文件
# 值为
# 写到
# 管理器
# 就会
# 默认为
# 把它
# 重启
# 盘中
# 清空
# 自己的
# 超过了
# 多个
# 将会
# 会在
# 可以通过
# 达到了
# 才有
# 可选
# 任何一个
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Python自动化办公教程_ExcelWordPDF批量处理案例
品牌网站制作公司有哪些,买正品品牌一般去哪个网站买?
阿里云高弹*务器配置方案|支持分布式架构与多节点部署
PHP正则匹配日期和时间(时间戳转换)的实例代码
Laravel怎么实现观察者模式Observer_Laravel模型事件监听与解耦开发【指南】
北京网页设计制作网站有哪些,继续教育自动播放怎么设置?
非常酷的网站设计制作软件,酷培ai教育官方网站?
如何用免费手机建站系统零基础打造专业网站?
php在windows下怎么调试_phpwindows环境调试操作说明【操作】
什么是JavaScript解构赋值_解构赋值有哪些实用技巧
Laravel队列由Redis驱动怎么配置_Laravel Redis队列使用教程
Laravel怎么实现搜索高亮功能_Laravel结合Scout与Algolia全文检索【实战】
百度输入法ai组件怎么删除 百度输入法ai组件移除工具
中山网站推广排名,中山信息港登录入口?
手机网站制作平台,手机靓号代理商怎么制作属于自己的手机靓号网站?
Laravel怎么进行数据库回滚_Laravel Migration数据库版本控制与回滚操作
Win11任务栏卡死怎么办 Windows11任务栏无反应解决方法【教程】
公司网站制作需要多少钱,找人做公司网站需要多少钱?
Win11搜索栏无法输入_解决Win11开始菜单搜索没反应问题【技巧】
Laravel怎么多语言本地化设置_Laravel语言包翻译与Locale动态切换【手册】
Laravel API资源类怎么用_Laravel API Resource数据转换
javascript日期怎么处理_如何格式化输出
怎样使用JSON进行数据交换_它有什么限制
如何快速搭建高效可靠的建站解决方案?
laravel服务容器和依赖注入怎么理解_laravel服务容器与依赖注入解析
如何在景安云服务器上绑定域名并配置虚拟主机?
如何用IIS7快速搭建并优化网站站点?
Laravel Facade的原理是什么_深入理解Laravel门面及其工作机制
Laravel如何创建和注册中间件_Laravel中间件编写与应用流程
Laravel辅助函数有哪些_Laravel Helpers常用助手函数大全
如何在腾讯云服务器上快速搭建个人网站?
如何在Windows虚拟主机上快速搭建网站?
浅析上传头像示例及其注意事项
Android okhttputils现在进度显示实例代码
js代码实现下拉菜单【推荐】
高配服务器限时抢购:企业级配置与回收服务一站式优惠方案
如何快速登录WAP自助建站平台?
5种Android数据存储方式汇总
图册素材网站设计制作软件,图册的导出方式有几种?
如何快速搭建二级域名独立网站?
Laravel如何升级到最新版本?(升级指南和步骤)
创业网站制作流程,创业网站可靠吗?
php增删改查怎么学_零基础入门php数据库操作必知基础【教程】
bing浏览器学术搜索入口_bing学术文献检索地址
如何批量查询域名的建站时间记录?
HTML5打空格有哪些误区_新手常犯的空格使用错误【技巧】
Laravel中的Facade(门面)到底是什么原理
Laravel如何编写单元测试和功能测试?(PHPUnit示例)
Python高阶函数应用_函数作为参数说明【指导】
Laravel如何实现登录错误次数限制_Laravel自带LoginThrottles限流配置【方法】

