OSCache是個一個普遍採用的高性能的J2EE緩存框架,OSCache能用於任何Java應用程序的普通的緩存解決方案。OSCache有如下特色:緩存任何對象,你能夠不受限制的緩存部分jsp頁面或HTTP請求,任何java對象均可以緩存。擁有全面的API--OSCache API給你全面的程序來控制全部的OSCache特性。永久緩存--緩存能隨意的寫入硬盤,所以容許昂貴的建立(expensive-to-create)數據來保持緩存,甚至能讓應用重啓。支持集羣--集羣緩存數據能被單個的進行參數配置,不須要修改代碼。緩存記錄的過時--你能夠有最大限度的控制緩存對象的過時,包括可插入式的刷新策略(若是默認性能不須要時)。html
OSCache是把緩存存放成Map的形式,默認狀況下緩存的key由請求的URL和查詢字符串組成。java
從http://www.opensymphony.com/oscache/ 獲取OSCache合適版本,這裏咱們下載了oscache-2.4-full.zipweb
解壓oscache-2.4-full.zip,把其中的oscache-2.4.jar 和解壓根目錄的lib文件夾下的commons-logging.jar引入到項目中。緩存
把解壓根目錄etc文件夾下的oscache.properties文件複製到項目的src目錄下。session
<%@ taglib uri="/WEB-INF/lib/oscache-2.4.jar" prefix="cache" %>
<cache:cache> user=${param.user } </cache:cache>
<cache:cache scope="session"> user=${param.user } </cache:cache>
<cache:cache key="user"> user=${param.user } </cache:cache>
這樣,緩存的key爲user,這時無論給URL中的user變量賦任何值,都只會獲得一份緩存(即以user做爲key的value值)。app
<cache:cache key="user" time="23"> user=${param.user } </cache:cache>
這樣就設置了局部緩存時間爲23秒框架
<cache:cache key="user" time="23" refresh="${param.refresh }"> user=${param.user } </cache:cache>
這樣,URL傳遞過來的參數爲true時將自動清除緩存。jsp
<cache:flush scope="application" />
<cache:flush scope="session" key="user" />
<cache:flush scope="session" group="usergroup" />
在web.xml中加入OSCache的相關Filter,並做須要的設置:性能
<filter> <filter-name>CacheFilter</filter-name> <filter-class>com.opensymphony.oscache.web.filter.CacheFilter</filter-class> <init-param> <param-name>time</param-name> <param-value>7200</param-value> </init-param> <init-param> <param-name>scope</param-name> <param-value>application</param-value> </init-param> </filter> <filter-mapping> <filter-name>CacheFilter</filter-name> <url-pattern>/cache/*</url-pattern> </filter-mapping>
#緩存到硬盤上 cache.memory=false #緩存到硬盤上時須要設置,設置持久化類DiskPersistenceListener,持久化到硬盤上 cache.persistence.class=com.opensymphony.oscache.plugins.diskpersistence.DiskPersistenceListener #緩存到硬盤上時須要設置,緩存到硬盤上的路徑 cache.path=D:\\myapp\\cache #設置緩存數量 cache.capacity=1000 #設置緩存在內存溢出時緩存到硬盤上 cache.persistence.overflow.only=true