OSCache缓存框架介绍 局部缓存和全局缓存的使用和基本配置项
本文由发表于6年前 | J2EE | 评论数 2 |  被围观 8,449 views+

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
除了文章中有特别说明,均为IT宅原创文章,转载请以链接形式注明出处。
本文链接:http://www.itzhai.com/oscache-caching-framework-introduced-local-cache-and-global-cache-use-and-basic-configuration-items.html
关键字: , ,
arthinking Java技术交流群:280755654,入门群:428693174 more
分享到:
 
2011 10/6
如果您有更好的原创技术博文或者观点,欢迎投稿:admin@itzhai.com,或者关注订阅左侧浮动面板的微信号订阅IT宅itread)发送消息。
文章评论
    2条评论
  1. 2013年10月24日09:58:43  #-49楼 回复 回复

    真棒

  2. 代码 2013年10月24日10:03:09  #-48楼 回复 回复

    很好,用了这个例子。网站性能提升了不少

给我留言

有人回复时邮件通知我
J2EE的相关文章
随机文章 本月热门 热评
1 Python语法笔记1 2014/3/9
2 Chrome 插件开发小记 2013/6/5
3 IKAnalyzer结合Lucene使用和单独使用例子 简单性能测试 2014/6/2
4 Java Web笔记 – 简单的权限管理控制实现 2011/11/12
5 Java基础笔记 – 通过反射机制动态创建和访问数组 2011/10/8
6 JavaScript设计模式笔记 – 单例模式 链式调用 2012/10/25
友情推荐 更多
破博客 文官洗碗安天下,武将打怪定乾坤。多么美好的年代,思之令人泪落。
Mr.5's Life 白天是一名程序员,晚上就是个有抱负的探索者
行知-追寻技术之美 关注大数据,分布式系统
我爱编程 编程成长轨迹
Cynthia's Blog 学习笔记 知识总结 思考感悟
 
猜您喜欢
欢迎关注我的公众号 IT宅
关于IT宅 文章归档

IT宅中的文章除了标题注明转载或有特别说明的文章,均为IT宅的技术知识总结,学习笔记或随笔。如果喜欢,请使用文章下面提供的分享组件。转载请注明出处并加入文章的原链接。 感谢大家的支持。

联系我们:admin@itzhai.com

Theme by arthinking. Copyright © 2011-2015 IT宅.com 保留所有权利.