EHcache的配置与使用


配置:
一.在src目录下加入ehcache.xml:

< cache name = "SimplePageCachingFilter"

  maxElementsInMemory = "10"

  maxElementsOnDisk = "10"

  eternal = "false"

  overflowToDisk = "true"

  diskSpoolBufferSizeMB = "20"

  timeToIdleSeconds = "10"

timeToLiveSeconds = "10"

memoryStoreEvictionPolicy = "LFU" />


在使用ehcache 的页面缓存之前,我们必须要了解ehcache 的几个概念,

1 timeToIdleSeconds ,多长时间不访问该缓存,那么ehcache 就会清除该缓存。

2 timeToLiveSeconds ,缓存的存活时间,从开始创建的时间算起。

SimplePageCachingFilter 是缓存的名字,maxElementsInMemory 表示内存中SimplePageCachingFilter 缓存中元素的最大数量为10 ,maxElementsOnDisk 是指持久化该缓存的元素到硬盘上的最大数量也为10 (),eternal=false 意味着该缓存会死亡。overflowToDisk=true 意思是表示当缓存中元素的数量超过限制时,就把这些元素持久化到硬盘,如果overflowToDisk 是false ,那么maxElementsOnDisk 的设置就没有什么意义了。memoryStoreEvictionPolicy=LFU 是指按照缓存的hit 值来清除,也就是说缓存满了之后,新的对象需要缓存时,将会将缓存中hit 值最小的对象清除出缓存,给新的对象腾出地方来了。

ehcache 中缓存的3 种清空策略:

1 FIFO ,first in first out ,这个是大家最熟的,先进先出,不多讲了

2 LFU , Less Frequently Used ,就是上面例子中使用的策略,直白一点就是讲一直以来最少被使用的。如上面所讲,缓存的元素有一个hit 属性,hit 值最小的将会被清出缓存。

3 LRU ,Least Recently Used ,最近最少使用的,缓存的元素有一个时间戳,当缓存容量满了,而又需要腾出地方来缓存新的元素的时候,那么现有缓存元素中时间戳离当前时间最远的元素将被清出缓存。


二.web.xml

<filter></filter>《filter》
 《filter-name》indexCacheFilter《/filter-name》
 《filter-class》
 net.sf.ehcache.constructs.web.filter.SimplePageCachingFilter
《/filter-class》
 《/filter》
 《filter-mapping》
 《filter-name》indexCacheFilter《/filter-name》
 《url-pattern》/search/companySearch.action?actionName=companySearch《/url-pattern》
 《/filter-mapping》

三。hbm.xml
《 cache usage="read-only"? /》

四。impl.java
 Query q1 = this.getSession().createQuery(hql.toString()).setFirstResult(0).setMaxResults(10) .setCacheable(true)
. setCacheRegion("
SimplePageCachingFilter ");
setCacheable(true):查询的结果需要缓存起来。
setCacheRegion():指用ehcache.xml里的命名为 SimplePageCachingFilter的 缓存条目。


其他的页面不需要做任何的设置就可以使用了。。而且在缓存期间就不会出现大块的sql执行了。。。哈哈。。任务完成。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值