Ehcache 的使用

先来说说ehcache,目前的版本为1.2,已经支持集群了。对于ehcache的使用,感觉很容易上手,基本上都是配置。以前在hibernate的时候配置过,所以也不是很陌生。API也挺简单,如下的api:
CacheManager主要的缓存管理类,一般一个应用为一个实例,如下
CacheManager.create();也可以使用new CacheManager的方式创建
默认的配置文件为ehcache.xml文件,也可以使用不同的配置

 

CacheManager manager = new CacheManager('src/config/other.xml');   

// 缓存的创建,采用自动的方式

CacheManager singletonManager = CacheManager.create();
singletonManager.addCache('testCache');
Cache test = singletonManager.getCache('testCache');   

// 或者直接创建Cache

CacheManager singletonManager = CacheManager.create();
Cache memoryOnlyCache = new Cache('testCache', 5000, false, false, 5, 2);
manager.addCache(memoryOnlyCache);
Cache test = singletonManager.getCache('testCache');   

// 删除cache

CacheManager singletonManager = CacheManager.create();
singletonManager.removeCache('sampleCache1');   

// 在使用ehcache后,需要关闭

CacheManager.getInstance().shutdown()   

// caches 的使用

Cache cache = manager.getCache('sampleCache1');   

// 执行crud操作

Cache cache = manager.getCache('sampleCache1');
Element element = new Element('key1', 'value1');
cache.put(element);   

// update

Cache cache = manager.getCache('sampleCache1');
cache.put(new Element('key1', 'value1');
//This updates the entry for 'key1'
cache.put(new Element('key1', 'value2');   

// get Serializable

Cache cache = manager.getCache('sampleCache1');
Element element = cache.get('key1');
Serializable value = element.getValue();   

// get non serializable

Cache cache = manager.getCache('sampleCache1');
Element element = cache.get('key1');
Object value = element.getObjectValue();   

// remove

Cache cache = manager.getCache('sampleCache1');
Element element = new Element('key1', 'value1'
cache.remove('key1');  

 

一个典型的Ecache的配置文件应该如下:

#ehcache.xml

<ehcache>

        <diskStore path="java.io.tmpdir"/>
                <defaultCache
                maxElementsInMemory="10000"
                eternal="false"
                timeToIdleSeconds="120"
                timeToLiveSeconds="120"
                overflowToDisk="true"
                diskPersistent="false"
                diskExpiryThreadIntervalSeconds="120"
                memoryStoreEvictionPolicy="LRU"
         />
     
        <cache name="Test"
                maxElementsInMemory="10000"
                eternal="false"
                overflowToDisk="true"
                timeToIdleSeconds="2"
                timeToLiveSeconds="600"
                memoryStoreEvictionPolicy="LRU"
        />
                       
</ehcache>

 

 

参数说明:
name - 元素名字。
maxElementsInMemory - 设定内存中创建对象的最大值。
overflowToDisk - 设置当内存中缓存达到 maxInMemory 限制时元素是否可写到磁盘上。
eternal - 设置元素(译注:内存中对象)是否永久驻留。如果是,将忽略超时限制且元素永不消亡。
timeToIdleSeconds - 设置某个元素消亡前的停顿时间。也就是在一个元素消亡之前,两次访问时间的最大时间间隔值。这只能在元素不是永久驻留时有效(译注:如果对象永恒不灭,则设置该属性也无用)。如果该值是 0 就意味着元素可以停顿无穷长的时间。
timeToLiveSeconds - 为元素设置消亡前的生存时间。也就是一个元素从构建到消亡的最大时间间隔值。这只能在元素不是永久驻留时有效。N秒后消亡。

你可能感兴趣的:(Hibernate,xml,cache,配置管理)