1 環(huán)境要求
OSCache2.2要求JDK1.4和 Servlet 2.3。
2 安裝
(1)從http://www.opensymphony.com/oscache/下載合適的OSCache版本,當前是oscache-2.0.2-full版本。
(2)將Zip文件解壓縮到c:\oscache(后面的章節(jié)中將使用%OSCache_Home%來表示這個目錄)目錄下。
(3)將主要組件%OSCache_Home%\oscache.jar文件放到 /WEB-INF/lib或相應類庫目錄中。jar文件名可能含有版本號和該版本的發(fā)布日期信息等,如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根目錄或發(fā)布環(huán)境的/WEB-INF/classes 目錄)。
oscache.properties包含了對OSCache運行特征值的設置信息 ,其配置項如下:
配置項 |
含義 |
可選值 |
缺省值 |
是否進行內存緩存 |
true、false |
true | |
內存緩存容納的最大對象數(shù) |
整數(shù) |
不限制(指定負數(shù)也相當于不限制),也就是緩存的對象從不被清除 | |
缺省的運算規(guī)則。要指定運算規(guī)則,就必須指定有效的cache.capacity值(正整數(shù))。規(guī)則是一些類,在包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 | |
當緩存中的某條數(shù)據(jù)更新時(比如與數(shù)據(jù)庫不同步,存在不新鮮的數(shù)據(jù)),對客戶請求返回更新前的數(shù)據(jù)。這樣就提供了更好的性能。 |
true、false |
false | |
硬盤緩存是否有限制。缺省為cache.capacity指定的值 |
true、false |
false | |
做持久化操作的類名。這個類必須實現(xiàn)PersistenceListener接口,從而將緩存數(shù)據(jù)持久化到文件、數(shù)據(jù)庫、LDAP。OSCache給出一個基于文件系統(tǒng)的實現(xiàn),并且使用對象的toString()方法生成要持久化數(shù)據(jù)的文件名。HashDiskPersistenceListener和 DiskPersistenceListener要求必須同時設置cache.path屬性。 |
com.opensymphony .oscache.plugins .diskpersistence .DiskPersistenceListener |
| |
cache.path |
硬盤持久化時存放文件的目錄。如果目錄不存在OSCache會自動創(chuàng)建。 |
|
|
是否只有當指定的內存緩存已經滿時才進行持久化。推薦使用true,flase是為向后兼容。 |
true、false |
false | |
一系列用逗號分割的類,這些類必須實現(xiàn)CacheEntryEventListener或(和)CacheMapAccessEventListener接口,CacheEntryEventListener監(jiān)聽緩存的add/update/flush/remove事件,CacheMapAccessEventListener監(jiān)聽緩存的access事件,從而可以跟蹤并統(tǒng)計緩存的執(zhí)行效率。 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版本開始出現(xiàn)的屬性
3.2 日志配置
log4j.properties文件內容為:
log4j.rootLogger=DEBUG,stdout,file |