1 环境要求
OSCache2.2要求JDK1.4和 Servlet 2.3。
2 安装
(1)从http://www.opensymphony.com/oscache/下载合适的OSCache版本,当前是oscache-2.0.2-full版本。
(2)将Zip文件解压缩到c:\oscache(后面的章节中将使用%OSCache_Home%来表示这个目录)目录下。
(3)将主要组件%OSCache_Home%\oscache.jar文件放到 /WEB-INF/lib或相应类库目录中。jar文件名可能含有版本号和该版本的发布日期信息等,如oscache-2.2.jar。
(4)引用包的处理:
①OSCache组件用Jakarta Commons Logging来处理日志信息,所以需要commons-logging.jar的支持,将commons-logging.jar放入classpath。
②如果使用JDK1.3,将commons-collections.jar放入classpath,如果使用JDK1.4或者以上版本则不必。
③如果需要集群缓存,把jgroups.jar放入classpath。
3 配置
3.1 缓存配置
从src\webapp\WEB-INF\classes或etc目录取得oscache.properties文件,放在CLASSPATH下(src根目录或发布环境的/WEB-INF/classes 目录)。
oscache.properties包含了对OSCache运行特征值的设置信息 ,其配置项如下:
配置项 | 含义 | 可选值 | 缺省值 |
是否进行内存缓存 | true、false | true | |
内存缓存容纳的最大对象数 | 整数 | 不限制(指定负数也相当于不限制),也就是缓存的对象从不被清除 | |
缺省的运算规则。要指定运算规则,就必须指定有效的cache.capacity值(正整数)。规则是一些类,在包com.opensymphony.oscache.base.algorithm下 | LRUCache(最近使用)、 FIFOCache(先进先出)、 UnlimitedCache(不限制) | 不限制cache.capacity时为UnlimitedCache, If you specify a size but not an algorithm, the cache algorithm used will be LRUCache | |
当缓存中的某条数据更新时(比如与数据库不同步,存在不新鲜的数据),对客户请求返回更新前的数据。这样就提供了更好的性能。 | true、false | false | |
硬盘缓存是否有限制。缺省为cache.capacity指定的值 | true、false | false | |
做持久化操作的类名。这个类必须实现PersistenceListener接口,从而将缓存数据持久化到文件、数据库、LDAP。OSCache给出一个基于文件系统的实现,并且使用对象的toString()方法生成要持久化数据的文件名。HashDiskPersistenceListener和DiskPersistenceListener要求必须同时设置cache.path属性。 | com.opensymphony .oscache.plugins .diskpersistence .DiskPersistenceListener |
| |
cache.path | 硬盘持久化时存放文件的目录。如果目录不存在OSCache会自动创建。 |
|
|
是否只有当指定的内存缓存已经满时才进行持久化。推荐使用true,flase是为向后兼容。 | true、false | false | |
一系列用逗号分割的类,这些类必须实现CacheEntryEventListener或(和)CacheMapAccessEventListener接口,CacheEntryEventListener监听缓存的add/update/flush/remove事件,CacheMapAccessEventListener监听缓存的access事件,从而可以跟踪并统计缓存的执行效率。 JavaDoc API for further details. | |
| |
指定在application或session范围里缓存的对象的key,这个key被ServletCacheAdministrator(由此自定义的tags)使用。 | | __oscache_cache | |
If your server is configured with multiple hosts, you may wish to add host name information to automatically generated cache keys. If so, set this property to true | true、false | false | |
见集群的相关说明 | |
| |
见集群的相关说明 | |
|
注:*从2.1版本开始出现的属性
3.2 日志配置
log4j.properties文件内容为:
log4j.rootLogger=DEBUG,stdout,file
|