ehcache缓存机制

ehcache缓存功能强大,最常用的是和hibernate和mybatis之类的持久层框架一起搭配使用,ehcache还可以缓存某个文件,甚至静态页面。

和hibernate持久层框架配合使用暂时先不说,这里主要演示ehcache.xml文件

[html]  view plain copy print ?
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <ehcache>  
  3.     <diskStore path="java.io.tmpdir" />  
  4.       
  5.     <defaultCache   
  6.         maxElementsInMemory="500"   
  7.         eternal="false"   
  8.         timeToIdleSeconds="300"   
  9.         timeToLiveSeconds="1200"   
  10.         overflowToDisk="true" />  
  11.       
  12.     <cache   
  13.         name="testcache1"   
  14.         maxElementsInMemory="150"   
  15.         eternal="false"   
  16.         timeToLiveSeconds="36000"   
  17.         timeToIdleSeconds="3600"   
  18.         overflowToDisk="true"/>   
  19. </ehcache>  

1 maxElementsInMemory
如maxElementsInMemory="10000" ,内存中存储的对象的个数, 内存管理的缓存元素数量最大限值。 

2 overflowToDisk
如overflowToDisk="true" 对象在内存中达到最大个数的时候,是否写入硬盘   

3 eternal
如eternal="false",表示cache中的对象是否过期,缺省为过期(按照配置中的时间),如果改为true,表示该对象永远不过期。
即cache中的元素将一直保存在内存中,不会因为时间超时而丢失,所以在这个值为true的时候,timeToIdleSeconds和timeToLiveSeconds两个属性的值就不起作用了。

4 maxElementsOnDisk
如maxElementsOnDisk="10000000" 在硬盘上最大的对象个数, 硬盘管理的缓存元素数量最大限值。默认值为0,就是没有限制。

5 timeToIdleSeconds 
如timeToIdleSeconds="3600" 设定元素在过期前空闲状态的时间,只对非持久性缓存对象有效。默认值为0,值为0意味着元素可以闲置至无限长时间。
访问这个cache中元素的最大间隔时间。如果超过这个时间没有访问这个cache中的某个元素,那么这个元素将被从cache中清除。  

6 timeToLiveSeconds  
如timeToLiveSeconds="100000" 设定元素从创建到过期的时间。对象存活多少秒过期. 默认值为0,值为0意味着元素可以存活至无限长时间。
意思是从cache中的某个元素从创建到消亡的时间,从创建开始计时,当超过这个时间,这个元素将被从cache中清除。  

7 diskPersistent     
如diskPersistent="false" 是否持久化磁盘缓存,设定在虚拟机重启时是否进行磁盘存储,默认为false. 
要想把cache真正持久化到磁盘,写程序时必须注意,在是用net.sf.ehcache.Cache的void put (Element element)方法后要使用void flush()方法。

8 diskExpiryThreadIntervalSeconds
如diskExpiryThreadIntervalSeconds=”1000”: 访问磁盘线程活动时间。

9 diskSpoolBufferSizeMB
存入磁盘时的缓冲区大小,默认30MB,每个缓存都有自己的缓冲区

10  emoryStoreEvictionPolicy
如: emoryStoreEvictionPolicy=” LRU”,元素逐出缓存规则。共有三种,(LRU)最近最少使用,为默认。 
    First In First Out (FIFO),先进先出。
    Less Frequently Used(specified as LFU)最少使用。

11  name 
指定一个cache的名字,用来识别不同的cache,必须惟一。

其中必须要填的属性为:

maxElementsInMemory: maxElementsOnDisk: eternal: overflowToDisk: 


转载自:http://blog.csdn.net/android_robot/article/details/7563663

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值