配置:
一.在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 值最小的将会被清出缓存.
2 LRU ,Least Recently Used , 最近最少使用的, 缓存的元素有一个时间戳, 当缓存容量满了, 而又需要腾出地方来缓存新的元素的时候, 那么现有缓存元素中时间戳离当前时间最远的元素将被清出缓存.