`
baobaocao521
  • 浏览: 29205 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

Ehcache使用实例

阅读更多

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 秒。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics