Java缓存组件EhCache

系统缓存是位于 应用程序与物理数据源之前,用于临时存放复制数据的内存区域,目的是减少应用程序对物理数据源的访问次数,从而提高应用程序的运行性能。

缓存可占用的内存是有限的,因此缓存的时效性也是有限的,所以需要设定内存数量的大小可执行失效算法,在内存满了的情况下,将缓存移除或者切换到硬盘。

Java的开源Cache组件有OSCache、EhCache、JbossCache。

OSCache功能强大,使用灵活,Filter缓存以及JSP之间使用cache标签。并发量较高时。出现线程阻塞和数据错误。

JBossCache优点是支持基于对象属性的集群同步,不过JBossCache的配置使用较复杂,在并发量较高情况下,对象属性数据在集群中同步也会加大系统开销

Ehcache 支持内存和磁盘的缓存,支持LRU、LFU和FIFO多种淘汰算法,支持分布式Cache,可以作为Hibernate缓存插件,同时它提供基于Filter的Cache,该Filter可以缓存响应的内容并采用Gzip压缩提高响应速度。

EhCache用法:

CacheManger manager = CacheManger.create();  //使用默认配置文件创建CacheManger

Cache cache = manger。getCache("demoCache");  //使用manager可以生成指定名称的Cache对象

manager.removeCache(“demoCache”);  //通过调用removeAll()可以移除所有Cache,manager.shutdown()可以关闭CacheManger 。

Element element = new Element("key",value);

cache.put(element); //往cache中添加元素

element.getValue(); //从cache中取得元素

cache.remove(“key”); //从cache删除元素

配置文件 ehcache.xml 

<?xml version="1.0" encoding="UTF-8"?>  
<ehcache name = "demoCache">  
 <diskStore path="java.io.tmpdir"/>  
  <defaultCache  
   maxElementsInMemory="10000" <!-- 缓存最大数目 -->  
   eternal="false" <!-- 缓存是否持久 -->  
   overflowToDisk="true" <!-- 是否保存到磁盘,当系统当机时-->  
   timeToIdleSeconds="300" <!-- 当缓存闲置n秒后销毁 -->  
   timeToLiveSeconds="180" <!-- 当缓存存活n秒后销毁-->  
	  memoryStoreEvictionPolicy="LFU" <!-- 缓存满了之后的淘汰算法,LFU直接淘汰使用比较少的对象 -->
   diskPersistent="false"  
   diskExpiryThreadIntervalSeconds= "120"/>  
</ehcache>  


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值