我的日常

登录/注册
您现在的位置:论坛 盖世程序员(我猜到了开头 却没有猜到结局) 运维优化 > OSCache缓存框架介绍 局部缓存和全局缓存的使用和基本配 ...
总共48086条微博

动态微博

查看: 2461|回复: 0

OSCache缓存框架介绍 局部缓存和全局缓存的使用和基本配置项

[复制链接]
admin    

1244

主题

544

听众

1万

金钱

管理员

  • TA的每日心情

    2021-2-2 11:21
  • 签到天数: 36 天

    [LV.5]常住居民I

    管理员

    跳转到指定楼层
    楼主
    发表于 2014-06-19 20:45:55 |只看该作者 |倒序浏览
    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



    科帮网 1、本主题所有言论和图片纯属会员个人意见,与本社区立场无关
    2、本站所有主题由该帖子作者发表,该帖子作者与科帮网享有帖子相关版权
    3、其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者和科帮网的同意
    4、帖子作者须承担一切因本文发表而直接或间接导致的民事或刑事法律责任
    5、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责
    6、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
    7、科帮网管理员和版主有权不事先通知发贴者而删除本文


    JAVA爱好者①群:JAVA爱好者① JAVA爱好者②群:JAVA爱好者② JAVA爱好者③ : JAVA爱好者③

    快速回复
    您需要登录后才可以回帖 登录 | 立即注册

       

    关闭

    站长推荐上一条 /1 下一条

    发布主题 快速回复 返回列表 联系我们 官方QQ群 科帮网手机客户端
    快速回复 返回顶部 返回列表