Cache的配置很灵活,官方提供很多方式,声明、XML、程序里面配置、调用构造方法时传入不同的参数
其中运行时配置的好处:在同一个地方配置所有的Cache 这样容易管理Cache的内存和磁盘消耗
发布时候可更改Cache配置
安装阶段检查出配置错误信息 而避免了运行时错误
如果你调用了CacheManager默认构造方法去创建CacheManager的实例。此方法会到classpath中找ehcache.xml文件,否则它会到类路径下找ehcache-failsafe.xml文件。而ehcache-failsafe.xml被包含在jar包中,所有它肯定能找的到。ehcache-failsafe. xml提供了一个非常简单的默认配置,这样可以使用户在没有创建ehcache.xml的情况下使用Ehcache。
注: 在ehcache1.6版本之前是ASCII编码的ehcache.xml配置文件,但是在这之后就是改用UTF-8,但是由于向下兼容! 所以不ACSII不用转码也可以使用
配置文件 ehcache.xml
<ehcache>
<cacheManagerPeerProviderFactory
class="net.sf.ehcache.distribution.RMICacheManagerPeerProviderFactory"
properties=".........."/>
<diskStore path="java.io.tmpdir"/>
<dafaultCache
maxElementsInMemory="1000"
eternal="false"
overflowToDisk="true"
timeToIdleSeconds="300"
timeToLiveSeconds="600"
diskPersistent="false"
diskEXpiryThreadIntervalSeconds="120"/>
<cache name="demoCache"
maxElementsInMemory="1000"
eternal="false"
overflowToDisk="true"
timeToIdleSeconds="300"
timeToLiveSeconds="600"
maxElementsOnDisk="1000000"
diskPersistent="false"
diskEXpiryThreadIntervalSeconds="120"
memoryStoreEvictionPolicy="LFU"/> <./ehcahe>
在集群中CacheManagerEventListener配置
我们通过Cache =ManagerEventListenerFactory可以实例化一个CacheManagerPeerProvider,当我们从CacheManager 中adder和removed Cache时,将通知CacheManagerPeerProvider,这样一来我们就可以很方便的对CacheManager中的cache做统计工作
注册到CacheManager的事件监听类名有adding a Cache 和 removing a cache
<cacheManagerEventListenerFactory class="" properties=""/>
CacheManagerPeerProvide配置
在集群中CacheManager配置CacheManagerPeerProviderFactoryy创建CacheManagerPeerProvider
<cacheManagerPeerProviderFactoryclass
MaxElemetsInMemory :缓存允许创建的最大对象数
eternal:缓存中对象是否是永久的如果是超时设置将被忽略,对象从不过期
timeToIdleSecond:缓存数据的钝化时间 也就是一个元素从构建到消亡的最大时间间隔值,这只能在元素不是永久驻留时有效,如果该值是0就意味着元素可以停顿无穷长的时间
timeToLiveSecond:缓存数据的生存时间,也就是一个元素从构建到消亡的最大时间间隔值,这只能在元素不是永久驻留时有效,如果该值是0就意味着元素可以停顿无穷长的时间
overflowToDisk:内存不足时,是否启用磁盘缓存
memoryStoreEvictionPolicy:缓存满了之后的淘汰算法,LRU和FIRO ,LFU算法直接淘汰使用比较少的对象,在内存保留的都是一些经常访问的对象。对于大部分网站项目适用
DmuliticastGroupPort="4446" 这样可以配置监听的端口
DisStore (磁盘缓存) :如果使用必须配置DisStore的配置项,如果不配置,就会使用默认java.io.tmpdir ,Ehcache的磁盘缓存使用文件的后缀名是.data和.index