读书人

Ehcache 要害概念

发布时间: 2012-08-29 08:40:14 作者: rapoo

Ehcache 关键概念
Ehcache 关键类



顶级包类图

Ehcache由CacheManager组成, 它管理缓存(Cache),Cache包含元素(Element), Element是实际的名/值对。Cache本身在内存或磁盘中实现。

CacheManager



CacheManager类图

CacheManager包含Cache,Cache依次包含Element。Cache的创建 访问 删除等操作由CacheManager控制。

CacheManager 的创建形式
CacheManager支持两种创建形式:单例(singleton)和实例(instance)。

Singleton形式
Ehcache-1.1仅支持一个CacheManager实例,就是一个单例,在这种情况下,CacheManager可以使用静态工厂方法(Static Factory Method)使用。

Instance形式
自ehcache-1.2起, CacheManager有一些映照各种静态创建方法的构造函数。这使得多个CacheManager可以被同时创建和使用。每个CacheManager要求自身的配置。如果受管下的Cache只使用MemoryStore(内存存储),这没什么特别之处。 如果Cache使用DiskStore(磁盘存储),在每个CacheManager配置中的diskStore 路径(path)必须是唯一的(各不相同)。当新的CacheManager被创建时,Ehcache会检查是否有其他的CacheManager与待创建的CacheManager使用相同的diskStore path。如果有,会抛出CacheException。如果CacheManager是集群的一部分(某集群的集群节点), 监听端口也必须唯一。

混合 Singleton 和 Instance 形式
如果某应用即使用构造函数 又使用静态创建方法来创建CacheManager的实例,会存在一个单例CacheManager, 它每次在静态创建方法被调用时被返回, 以及其他的通过构造函数创建的实例,这两种类型的实例将和平共存。

Ehcache



Ehcache 接口图

所有的Cache实现Ehcache接口。Cache拥有name和attributes。每个Cache包含Element。Ehcache中的Cache类似于其他缓存系统的缓存地域(Cache Region)。Cache的Element存储在MemoryStore,Element溢出到DiskStore是可选的。

Element


Element类图

一个Element是Cache中的原子项目,它有key, value, 和访问记录。Element在Cache中放入(put)或移除(remove)。 Element依赖于Cache的配置可以过期并由Cache移除。

Cache 习惯模式
Caches可以在不同的方式使用。每种方式遵循一个Cache习惯模式。Ehcache支持如下习惯模式:
? 直接操作—irect Manipulation)
? pull-through
? 自填充(Self Populating)

直接操作—irect Manipulation)
简言之,你自己调用cache.put(Element element)(放入缓存项目) 和cache.get(Object key)(获取缓存项目)。
你必须知道如何去使用。

自填充 (Self Populating)
你只需要调用cache.get(Object key)。Cache自己知道如何填充缓存项目。

读书人网 >软件架构设计

热点推荐