<!-- 系统缓存 -->
<cache name="sysCache" maxElementsInMemory="10000"
eternal="false" overflowToDisk="true" diskPersistent="true" maxElementsOnDisk="0"
timeToIdleSeconds="0" timeToLiveSeconds="6000"
diskExpiryThreadIntervalSeconds="1200">
</cache>
diskStore 指定数据存储位置,可指定磁盘中的文件夹位置
defaultCache 默认的管理策略
以下属性是必须的
name 缓存名称,cache的唯一标识(ehcache会把这个cache放到HashMap里)
eternal 设定缓存是否永久有效。如果为true,则缓存的数据始终有效,如果为false那么还要根据timeToIdleSeconds,timeToLiveSeconds判断。
maxElementsInMemory 设置缓存在内存中最大缓存数量(0表示无限),如果放入cache中的元素超过这个数值,有两种情况
1、若overflowToDisk的属性值为true,会将cache中多出的元素放入磁盘文件中。
2、若overflowToDisk的属性值为false,会根据memoryStoreEvictionPolicy的策略替换cache中原有的元素。
overflowToDisk 如果内存中数据超过内存限制,是否要缓存到磁盘上。
maxElementsOnDisk 在磁盘上缓存的element的最大数目,默认值为0,表示不限制。
以下属性是可选的
timeToIdleSeconds="0" 设置缓存元素过期前的空闲时间(单位为秒),即当缓存闲置n秒后销毁。 当eternal为false时,这个属性才有效,0表示可以永远空闲,默认为0
timeToLiveSeconds="600" 设置缓存元素的有效生命期(单位为秒),即当缓存存活n秒后销毁。0 表示永远存在不过期
diskPersistent="true" 是否在磁盘上持久化。指重启jvm后,数据是否有效。默认为false。
diskExpiryThreadIntervalSeconds 磁盘缓存的清理线程运行间隔,默认是120秒
diskSpoolBufferSizeMB DiskStore使用的磁盘大小,默认值30MB。每个cache使用各自的DiskStore
memoryStoreEvictionPolicy 如果内存中数据超过内存限制,向磁盘缓存时的策略。默认是LRU(最近最少使用),可选的有FIFO(先进先出)或是LFU(较少使用)
缓存的3 种清空策略 :
FIFO first in first out (先进先出).
LFU Less Frequently Used (最少使用).意思是一直以来最少被使用的。缓存的元素有一个hit 属性,hit 值最小的将会被清出缓存。
LRU Least Recently Used(最近最少使用). (ehcache 默认值).缓存的元素有一个时间戳,当缓存容量满了,而又需要腾出地方来缓存新的元素的时候,那么现有缓存元素中时间戳离当前时间最远的元素将被清出缓存
缓存子元素
cacheEventListenerFactory 注册相应的的缓存监听类,用于处理缓存事件,如put,remove,update,和expire
bootstrapCacheLoaderFactory 指定相应的BootstrapCacheLoader,用于在初始化缓存,以及自动设置
转载于:https://my.oschina.net/zhxm/blog/1599791