zoukankan      html  css  js  c++  java
  • OSCache 缓存技术

    前言:OSCache标记库由OpenSymphony设计,它是一种开创性的JSP定制标记应用,提供了在现有JSP页面之内实现快速内存缓冲的功能。OSCache是个一个广泛采用的高性能的J2EE缓存框架,OSCache能用于任何Java应用程序的普通的缓存解决方案。OSCache有以下特点:缓存任何对象,你可以不受限制的缓存部分jsp页面或HTTP请求,任何java对象都可以缓存。拥有全面的API--OSCache API给你全面的程序来控制所有的OSCache特性。永久缓存--缓存能随意的写入硬盘,因此允许昂贵的创建(expensive-to-create)数据来保持缓存,甚至能让应用重启。支持集群--集群缓存数据能被单个的进行参数配置,不需要修改代码。缓存记录的过期--你可以有最大限度的控制缓存对象的过期,包括可插入式的刷新策略(如果默认性能不需要时)。

    所需要的包:

    下载路径:http://www.opensymphony.com/oscache/

    oscache.jar

    libcommons-logging.jar

    配置步骤:

    第一步:把上述两个jar文件放置在WEB-INF/lib目录下

    第二步:把oscache安装目录下的/etc/oscache.properties 文件放入 /WEB-INF/classes目录.开发阶段,我们可以把该文件放置在src目录.

    页面局部缓存

    我们使用Oscache的标签<oscache></oscache>来进行页面的局部缓存.使用方法如下:

    <%@taglib uri="http://www.opensymphony.com/oscache" prefix=“oscache"%>

    <oscache:cache>
    
      <%=new Date() %>  --时间就会被缓存起来:如果不设定key值时:缓存的key将以请求的URI+查询字串组成,如果你访问/oscache/index.jsp?name=ttt和/oscache/index.jsp?name=ppp将得到两份缓存。缓存默认存放在application范围,缓存时间默认为3600秒,即1小时。
    
    </oscache:cache>
    <oscache:cache  key=“name”>--这个时候就以name为key来缓存了,此时如何你再访问 /oscache/index.jsp?name=ttt和/oscache/index.jsp?name=ppp 将会得到一份缓存。
     name=${param.name} </oscache:cache>
    <oscache:cache key="name" scope="session">//缓存范围设置为session,这时候缓存保存在用户的session中,如果用户的把浏览器关闭,再重新打开一个新浏览器,原来缓存的内容将不存在 
    name
    =${param.name}</oscache:cache>
    <oscache:cache key="name" time="10">
            name=${param.name}//上面设置了缓存的时间为10秒,超过10秒后,缓存的内容将失掉。
    </oscache:cache>
    <oscache:cache key="name" time="60" refresh="${param.refresh}">
            name=${param.name}//refresh为true将会导致缓存的内容过期而被清除,简单地说,该属性为true用于清除缓存。要指定过期的时间必需的。
            在url里得到参数param=true就可以让缓存自动清掉。
    </oscache:cache>

    缓存的管理

    人为管理缓存<flush />标签:

    <oscache:flush scope="application" />

    清除application范围内的所有缓存

    <oscache:flush scope="session" key="foobar" />

    清除session范围内的key为foobar的缓存。

    <oscache:flush scope="application" group="currencyData" />

    清除application范围内组名为currencyData内的所有缓存。

    页面全局缓存

    第一步在web.xml添加过虑器

    <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>*.jsp</url-pattern>
    </filter-mapping>

    第二步设置oscache.properties属性文件

    cache.memory=true
    指定是否使用内存缓存,默认值为true,即使用内存缓存。
    cache.capacity
    指定缓存的容量,默认的容量是无限的。我们可以为它设置缓存数量,如:
    cache.capacity=100000
    
    如果我们要使用硬盘缓存,可以这样设置:
    cache.memory=false
    cache.path=d:\cache  (指定,缓存保存的路径,注意:路径应采用双符)
    cache.persistence.class=com.opensymphony.oscache.plugins.diskpersistence.DiskPersistenceListener
    cache.persistence.class用于设置持久化类。
  • 相关阅读:
    Gearman分布式任务处理系统(六)跨多种环境部署
    Gearman分布式任务处理系统(五)版本介绍、安装方法和使用说明
    Gearman分布式任务处理系统(四)Gearman协议
    Gearman分布式任务处理系统(三)libevent介绍
    Java课程笔记_4
    Lesson 13-14 How often do you exercise?
    Lesson 11-12 Men and Women
    Java课程笔记_3
    Lession 9-10 Cell Phone Taboos
    Lession 5-6 When you have a cold
  • 原文地址:https://www.cnblogs.com/peter-peng/p/4110773.html
Copyright © 2011-2022 走看看