简介 |
Ehcache中的CacheManager是用来管理Cache的。而Cache中包含元素Element,而Element实质上就是一个键值对。Cache在物理方面的实现有内存实现和磁盘实现。
CacheManager |
CacheManager包含Cache,而Cache反过来构成了CacheManager的要素。
· CacheManager创建模式:CacheManger创建模式包含singleton和instance俩种。
· Simgleton Mode
从字面可理解为单例模式,这种模式只允许创建一个CacheManger实例。
· Instance Mode
那这种模式从字面上理解也应该是实例化模式了。从Ehcache-1.2以来,CacheManager有多种静态创建方法。这样我们就可以同时创建多个复杂的不同配置的CacheManager。
如果只是用内存来存储Cache,那么没有什么需要你特别考虑的。如果是用磁盘来缓存Cache的话,你就必须为CacheManager指定的磁盘路径。当一个新的CacheManager被创建时,必须要确保磁盘路径没有被别的CacheManager使用。如果重复使用磁盘路径,这个时候就会抛出CacheException。如果CacheManger配置成集群模式的,还要注意端口的指定。
· Singletion和Instance混用
如果一个应用程序通过构造方法创建了一个CacheManager的实例,也调用了静态创建方法,这个时候会,没调用一次静态创建方法就会返回一个CacheManager的Singleton实例,所有的这些实例将会共存。
Ehcache |
Ehcache是一个接口,所有的Cache都实现了Ehcache。每个Cache都有自己的名字和特定的属性以及包含着Element元素。
Ehcache中的Cache代表一块特定的缓存区域或是缓存系统。
Cache的Element元素可以存储到MemoryStore(内存)中,也可以写到DiskStore(磁盘)中。
Element |
每一个Element对应一个缓存的原子实体。它有key、value以及访问记录属性。Element可以被put进Cache也可以remove出Cache。通过配置Cache可定制Element的失效以及移除策略。
在Ehcache-1.2 API中要求存储对象要可序列化。没有序列化的对象不可以存储到DiskStore(磁盘)中,也不能被拷贝。
在Element类中注意到有俩个方法getOjbectValue和getKeyValue,这个方法都是从缓存中取得Element元素的方法,唯一区别就是一个是用来取得序列化对象,另外一个是不可序列化对象。