EHCache版本: ehcache-2.9.0
下载地址: http://ehcache.org/
缓存配置:
maxEntriesLocalHeap : 堆内存中最大缓存对象数,0没有限制;
eternal : true,对象是永久有效,timeout将被忽略;
timeToIdleSeconds: 缓存过期前的闲置时间;
timeToLiveSeconds: 缓存过期前的生存时间,创建时间到失效时间的间隔为存活时间;
注:timeToIdleSeconds和timeToLiveSeconds: 当eternal为false时,这个属性才有效,0为不限制;
maxEntriesLocalDisk: 磁盘中的最大对象数,默认为0不限制;
diskExpiryThreadIntervalSeconds: 使用过期算法清除磁盘中失效对象的间隔;
memoryStoreEvictionPolicy: 当超过最大内存限制时,根据指定的策略去清理内存。默认策略是LRU。
清理内存的三种算法: LRU(最近最少使用) 、LFU(较少使用)、FIFO(先进先出)。
实例代码:
maxEntriesLocalHeap="10000"
eternal="false"
timeToIdleSeconds="60"
timeToLiveSeconds="60"
maxEntriesLocalDisk="10000000"
diskExpiryThreadIntervalSeconds="30"
memoryStoreEvictionPolicy="LRU">
package com.what21.ehcache.simple;
import net.sf.ehcache.Cache;
import net.sf.ehcache.CacheManager;
import net.sf.ehcache.Element;
public class SimpleEhcache {
/**
* @param args
*/
public static void main(String[] args) {
//
String path = SimpleEhcache.class.getResource("ehcache.xml").getPath().toString();
System.out.println("path = " + path);
// 创建 CacheManager
CacheManager manager = CacheManager.create(path);
// 获取默认的
Cache what21Cache = manager.getCache("what21Cache");
System.out.println("what21Cache = " + what21Cache);
// 缓存内容
Element element = new Element("aaa", "aaa");
what21Cache.put(element);
try {
Thread.sleep( 2*60 * 1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
// 访问缓存
Element cacheEle = what21Cache.get("aaa");
if(cacheEle!=null){
System.out.println("Key: " + cacheEle.getObjectKey());
System.out.println("Value: " + cacheEle.getObjectValue());
}else{
System.out.println("已过期,Key: aaa");
}
}
}
cache输出:
what21Cache = [
name = what21Cache
status = STATUS_ALIVE
eternal = false
overflowToDisk = true
maxEntriesLocalHeap = 10000
maxEntriesLocalDisk = 10000000
memoryStoreEvictionPolicy = LRU
timeToLiveSeconds = 60
timeToIdleSeconds = 60
persistence = LOCALTEMPSWAP
diskExpiryThreadIntervalSeconds = 30
cacheEventListeners: ;
orderedCacheEventListeners:
maxBytesLocalHeap = 0
overflowToOffHeap = false
maxBytesLocalOffHeap = 0
maxBytesLocalDisk = 0
pinned = false
]