使用oscache提高程式效能,oscache程式效能

來源:互聯網
上載者:User

使用oscache提高程式效能,oscache程式效能

一. 簡介

oscache是一個廣泛採用的高效能的j2ee緩衝架構,能應用於任何java應用程式的普通的緩衝解決方案。


二. 特點

1. 可以緩衝任何對象, 你可以不受限制的緩衝部分jsp頁面或http請求,任何java對象都能緩衝

2. 可以永久緩衝,因為緩衝能隨意的寫入硬碟

3. 支援叢集

4. 可以控制緩衝對象的到期


三. 使用

1.對局部頁面緩衝

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%@ taglib uri="http://www.opensymphony.com/oscache" prefix="cache"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><title>My JSP 'index.jsp' starting page</title></head><body><h1>測試1</h1> 沒有緩衝的日期:<%=new Date()%><br><!-- 頁面局部緩衝,使用標籤 --><cache:cache time="5" key="cacheDate" scope="application">             緩衝局部頁面,每5秒重新整理緩衝一次,日期: <%=new Date()%></cache:cache><br></body></html>
2.對整個頁面緩衝

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%@ taglib uri="http://www.opensymphony.com/oscache" prefix="cache"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><title>My JSP 'index.jsp' starting page</title></head><body><!-- 頁面全域緩衝,在web.xml中配置 --><h1>測試2</h1>緩衝整個頁面,每10秒重新整理緩衝一次,日期:<%=new Date()%><br></body></html>
3.緩衝對象

public class CacheServlet extends HttpServlet {private static final long serialVersionUID = 1L;protected void doGet(HttpServletRequest request, HttpServletResponse response) {int refreshPeriod = 10; // cache in 6 secondsGeneralCacheAdministrator cache = new GeneralCacheAdministrator();try {// get data from cacheDate myDate = (Date) cache.getFromCache("myDate", refreshPeriod); System.out.println("current date is : " + myDate); } catch (NeedsRefreshException e) {try {Date myDate = new Date();// put data into cachecache.putInCache("myDate", myDate);} catch (Exception ex) {cache.cancelUpdate("myDate");}}}}
oscache.properties

#預設在記憶體中作緩衝,如設定為false,那cache只能緩衝到資料庫或硬碟中cache.memory=false#持久化緩衝類,如此類開啟,則必須設定cache.path資訊 cache.persistence.class=com.opensymphony.oscache.plugins.diskpersistence.DiskPersistenceListener#建立磁碟緩衝cache.path=D\:\\cache#緩衝元素個數 cache.capacity=1000#cache.cluster 為叢集設定資訊。如#cache.cluster.multicast.ip為廣播IP地址#cache.cluster.properties為叢集屬性 
web.xml

<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"id="WebApp_ID" version="2.5"><filter><filter-name>CacheFilter</filter-name><!-- CacheFilter只捕獲Http頭為200的頁面請求,即只對無錯誤請求作緩衝 --><filter-class>com.opensymphony.oscache.web.filter.CacheFilter</filter-class><init-param><!-- 緩衝內容的時間段,單位是秒,預設是3600秒 --><param-name>time</param-name><param-value>10</param-value></init-param><init-param><param-name>scope</param-name><param-value>application</param-value></init-param></filter><!-- cache all the cache.jsp file --><filter-mapping><filter-name>CacheFilter</filter-name><url-pattern>/cache2.jsp</url-pattern></filter-mapping><servlet><servlet-name>cacheServlet</servlet-name><servlet-class>com.zdp.cache.CacheServlet</servlet-class></servlet><servlet-mapping><servlet-name>cacheServlet</servlet-name><url-pattern>/cacheServlet</url-pattern></servlet-mapping><welcome-file-list><welcome-file>cache1.jsp</welcome-file></welcome-file-list></web-app>
四. 核心API - GeneralCacheAdministrator:

1.void putInCache(String key,Object content);//put on Object in a cache

2.Object getFromCache(String key);//  get on Object from the Cache

3.void removeEntry(String key);//  remove an Object in a cache

4.void flushEntry(String key);//  flushes a single cache entry

5.void flushAll();//  flush the entire cache immediately

6.void cancelUpdate(String key);//  cacels a pending cache update

參加資料:http://www.cnblogs.com/huzi007/p/3873396.html

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.