7点微信公众号:请点这里。7点测试网QQ总群:277957570。

7点测试网

 找回密码
 注册7点

QQ登录

只需一步,快速开始

查看: 859|回复: 0

Ehcache使用实例(二)

[复制链接]
发表于 2013-12-3 14:51:54 | 显示全部楼层 |阅读模式
Cache使用




l          得到一个Cache引用



获得一个sampleCache1的引用,从官方下载ehcache.xml,在ehcache.xml中已经有配置好的缓存,大家直接使用就可以,或是做测试,如果说真正使用的时候,最后自己手动配置一个比较好。



Cache cache = manager.getCache(“sampleCache1”);



l          使用Cache



Put一个Element到cache中



Cache cache = manager.getCache(“sampleCache1”);

Element element = new Element(“key1”,”value1”);

cache.put(element);



update一个element时,只要在构造element时将相同的key传入,在调用cache.put(element),这是Ehcache会根据key到缓存中找到对应的element并做更新。



Cache cache = manager.getCache(“sampleCache1”);

Cache.put(new Element(“key1”, “value1”));

//更新element

Cache.put(new Element(“key1”, “value2”));



根据key取得对应element的序列化value值




Cache cache = manager.getCache(“sampleCache1”);

Element element = cache.get(“key1”);

Serializable value = element.getValue();



根据key取得对应element的非序列化value值



Cache cache = manager.getcache(“samplecache1”);

Element element = cache.get(“key1”);

Ojbect value = element.getObjectValue();



从cache中移除key对应的element



Cache cache = manager.getCache(“sampleCache”);

Element element = new Element(“key1”, “value1”);

Cache.reomve(“key1”);

l          磁盘持久化



SampleCache1的配置是支持磁盘持久化的。如果想要保证element即时的被输出到磁盘,可以调用cache.flush();



Cache cache = manager.getcache(“samplecache1”);

Cache.flush();



l          Cache Sizes



获得当前cache中的element数量。



Cache cache = manager.getCache(“sampleCache1”);

Int elementsInMemory = cache.getSize();



获得当前MemoryStore中的element数量。



Cache cache = manager.getCache(“sampleCache1”);

long elementsInMemory = cache.getMemoryStoreSize();



获得当前DiskStore中element数量。



Cache cache = manager.getCache(“sampleCache1”);

long elementsInMemory = cache.getDiskStoreSize();



l          Cache Hits and Misses



所谓的hits就是缓存访问次数,而misses就是缓存中每个element的丢失次数。这些参数对优化缓存配置有很大的帮助。



获得缓存中请求的element被找到的次数。



Cache cache = manager.getCache(“sampleCache1”);

Int hits = cache.getHitCount();



获得请求的element在MemoryStore中被找到的次数。


Cache cache = manager.getCache(“sampleCache1”);

Int hits = cache.getMemoryStoreHitCount();





获得请求的element在DiskStore中被找到的次数。



Cache cache = manager.getCache(“sampleCache1”);

Int hits = cache.getDiskStoreHitCount();



获得请求的element在MemoryStore中没有被找到的次数。


Cache cache = manager.getCache(“sampleCache1”);

Int hits = cache.getMissCountNotFound();





获得请求的element在MemoryStore中没有被找到的次数。



Cache cache = manager.getCache(“sampleCache1”);

Int hits = cache.getMissCountNotFound();



获得缓存中失效element没有被找到的次数。



Cache cache = manager.getcache(“samplecache1”);

Int hits = cache.getMissCountExpired();



创建一个默认配置cache




manager.addCache(String cachename);这个方法可以说是Ehcache很灵活的体现,通常我们想要添加一个新的cache到CacheManager中时,应该调用manager.addCache(Cache cache);可以看到入参是一个Cache类型对象,而前面那段代码,Ehcache会自动使用默认配置创建一个名字为输出参数的cache供使用,是不是很方面呢。



使用自定义参数创建一个cache




Ehcache允许通过编码的方式创建一个自定义Cache,也就是调用构造方法。



Public Cache(String name, int maxElementsInMemory, MemoryStoreEvictionPolicy memoryStoreEvictionPolicy, Boolean overflowToDisk, Boolean eternal, long timeToLiveSeconds, long timeToIdleSeconds, Boolean isdkPersistent, long diskExpiryThreadIntervalSeconds) {}



以上就是Cache的构造函数。

CacheManager manager = CacheManager.create();

Cache cache = new Cache(“test”, maxElements, MemoryStoreEvictionPolicy.LFU, true, false, 60, 30, false, 0);

Manager.addCache(testCache);



以上代码是创建一个缓存添加到cachemanager中,缓存名字为test,内存驱逐策略是LFU,允许输出到磁盘,element不是永久有效的,element最大存活时间是60秒,element最大闲置时间30秒,不会持久化到磁盘,失效element清理线程运行时间间隔是0秒。
您需要登录后才可以回帖 登录 | 注册7点

本版积分规则

QQ|小黑屋|手机版|Archiver|7点测试网 ( 京ICP备09084002号

GMT+8, 2018-2-21 01:28 , Processed in 0.119445 second(s), 22 queries .

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表