OSCache緩存框架介紹

       OSCache是一種開放性的JSP定製標記應用,由OpenSymphony設計,提供了在現有JSP頁面之內實現快速內存緩衝的功能。

OSCache是個一個廣泛採用的高性能的J2EE緩存框架,OSCache能用於任何Java應用程序的普通的緩存解決方案。OSCache有以下特點:緩存任何對象,你可以不受限制的緩存部分jsp頁面或HTTP請求,任何java對象都可以緩存。擁有全面的API--OSCache API給你全面的程序來控制所有的OSCache特性。永久緩存--緩存能隨意的寫入硬盤,因此允許昂貴的創建(expensive-to-create)數據來保持緩存,甚至能讓應用重啓。支持集羣--集羣緩存數據能被單個的進行參數配置,不需要修改代碼。緩存記錄的過期--你可以有最大限度的控制緩存對象的過期,包括可插入式的刷新策略(如果默認性能不需要時)。

OSCache是把緩存存放成Map的形式,默認情況下緩存的key由請求的URL和查詢字符串組成。

SCache的獲取與使用
獲取OSCache相關文件

從http://www.opensymphony.com/oscache/ 獲取OSCache合適版本,這裏我們下載了oscache-2.4-full.zip

在項目中配置OSCache

解壓oscache-2.4-full.zip,把其中的oscache-2.4.jar 和解壓根目錄的lib文件夾下的commons-logging.jar引入到項目中。

把解壓根目錄etc文件夾下的oscache.properties文件複製到項目的src目錄下。

使用OSCache的頁面局部緩存
在需要緩存的頁面中引入
<%@ taglib uri="/WEB-INF/lib/oscache-2.4.jar" prefix="cache" %>
在需要緩存的局部地方使用<cache:cache>標籤,從param中獲取需要的參數信息
<cache:cache>
	user=${param.user }
</cache:cache>
設置緩存保存在session中:
<cache:cache scope="session">
	user=${param.user }
</cache:cache>
默認情況下,緩存的key由請求的URL和查詢字符串組成,如果需要設置緩存的key,可以像如下所示進行設置:
<cache:cache key="user">
	user=${param.user }
</cache:cache>

這樣,緩存的key爲user,這時不管給URL中的user變量賦任何值,都只會得到一份緩存(即以user作爲key的value值)。

設置局部緩存的緩存時間,以秒爲單位:
<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時將自動清除緩存。

清除application範圍內所有緩存:
<cache:flush scope="application" />
清除session中指定key的所有緩存:
<cache:flush scope="session" key="user" />
清除session內指定組名的所有緩存:
<cache:flush scope="session" group="usergroup" />
使用OSCache的頁面全局緩存:

在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>
oscache.properties中的常用配置:
#緩存到硬盤上
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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章