`
zhoujinxiong
  • 浏览: 25871 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类

使用 OSCache

阅读更多

OSCache是当前运用最广的缓存方案,JBoss,Hibernate,Spring等都对其有支持,
下面简单介绍一下OSCache的配置和使用过程。

1.安装过程
从http://www.opensymphony.com/oscache/download.html下载合适的OSCache版本,
我下载的是oscache-2.0.2-full版本。
解压缩下载的文件到指定目录

从解压缩目录取得oscache.jar 文件放到 /WEB-INF/lib 或相应类库目录 目录中,
jar文件名可能含有版本号和该版本的发布日期信息等,如oscache-2.0.2-22Jan04.jar

如果你的jdk版本为1.3.x,建议在lib中加入Apache Common Lib 的commons-collections.jar包。
如jdk是1.4以上则不必

从src或etc目录取得oscache.properties 文件,放入src根目录或发布环境的/WEB-INF/classes 目录
如你需要建立磁盘缓存,须修改oscache.properties 中的cache.path信息 (去掉前面的#注释)。
win类路径类似为c:\\app\\cache
unix类路径类似为/opt/myapp/cache

拷贝OSCache标签库文件oscache.tld到/WEB-INF/classes目录。

现在你的应用目录类似如下:
$WEB_APPLICATION\WEB-INF\lib\oscache.jar
$WEB_APPLICATION\WEB-INF\classes\oscache.properties
$WEB_APPLICATION\WEB-INF\classes\oscache.tld


将下列代码加入web.xml文件中
<taglib>
<taglib-uri>oscache</taglib-uri>
<taglib-location>/WEB-INF/classes/oscache.tld</taglib-location>
</taglib>

为了便于调试日志输出,须加入commons-logging.jar和log4j-1.2.8.jar到当前类库路径中

在src目录加入下面两个日志输出配置文件:
log4j.properties 文件内容为:
log4j.rootLogger=DEBUG,stdout,file

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=[start]%d{yyyy/MM/dd/ HH:mm:ss}[DATE]%n%p[PRIORITY]%n%x[NDC]%n%t[THREAD] n%c[CATEGORY]%n%m[MESSAGE]%n%n



log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=oscache.log
log4j.appender.file.MaxFileSize=100KB
log4j.appender.file.MaxBackupIndex=5
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=[start]%d{yyyy/MM/dd/ HH:mm:ss}[DATE]%n%p[PRIORITY]%n%x[NDC]%n%t[THREAD] n%c[CATEGORY]%n%m[MESSAGE]%n%n


log4j.logger.org.apache.commons=ERROR
log4j.logger.com.opensymphony.oscache.base=INFO


commons-logging.properties 文件内容为

org.apache.commons.logging.Log=org.apache.commons.logging.impl.Log4JCategoryLog

2.oscache.properties 文件配置向导

cache.memory
值为true 或 false ,默认为在内存中作缓存,
如设置为false,那cache只能缓存到数据库或硬盘中,那cache还有什么意义:)

cache.capacity
缓存元素个数

cache.persistence.class
持久化缓存类,如此类打开,则必须设置cache.path信息

cache.cluster 相关
为集群设置信息。

cache.cluster.multicast.ip为广播IP地址
cache.cluster.properties为集群属性


3.OSCache的基本用法

cache1.jsp 内容如下

<%@ page import="java.util.*" %>
<%@ taglib uri="oscache" prefix="cache" %>

<html>
<body>

没有缓存的日期: <%= new Date() %><p>
<!--自动刷新-->
<cache:cache time="30">
每30秒刷新缓存一次的日期: <%= new Date() %>
</cache:cache>
<!--手动刷新-->
<cache:cache key="testcache">
手动刷新缓存的日期: <%= new Date() %> <p>
</cache:cache>
<a href="cache2.jsp">手动刷新</a>

</body>
</html>

cache2.jsp 执行手动刷新页面如下
<%@ taglib uri="oscache" prefix="cache" %>

<html>
<body>

缓存已刷新...<p>

<cache:flush key="testcache" scope="application"/>

<a href="cache1.jsp">返回</a>

</body>
</html>


你也可以通过下面语句定义Cache的有效范围,如不定义scope,scope默认为Applcation
<cache:cache time="30" scope="session">
...
</cache:cache>

4. 缓存过滤器 CacheFilter

你可以在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>60</param-value>
</init-param>
<init-param>
<param-name>scope</param-name>
<param-value>session</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CacheFilter</filter-name>
<url-pattern>*.jsp</url-pattern>
</filter-mapping>
上面定义将缓存所有.jsp页面,缓存刷新时间为60秒,缓存作用域为Session

注意,CacheFilter只捕获Http头为200的页面请求,即只对无错误请求作缓存,
而不对其他请求(如500,404,400)作缓存处理

分享到:
评论

相关推荐

    Oscache使用教程

    **Oscache使用教程** Oscache是一款开源的Java缓存解决方案,主要用于提高Web应用程序的性能,通过在内存中存储经常访问的数据,避免了频繁的数据库查询,从而减少了系统响应时间。本文将深入探讨Oscache的基本原理...

    OsCache缓存框架使用示例

    本示例将通过一个天气预报Web服务的场景,详细介绍OsCache的使用方法。 首先,我们需要了解OsCache的基本概念。OsCache的核心是基于哈希表的数据结构,它可以在内存中存储对象,支持自动过期策略,可以设置缓存项的...

    oscache,缓存机制的使用

    标题与描述概述的知识点主要集中在oscache的使用及其在Java环境下的配置与实施。oscache是一种缓存机制,主要用于提高Web应用的响应速度和优化系统性能。以下是对这些知识点的详细解析: ### oscache简介 oscache...

    OSCache需要的包

    在这个特定的案例中,`oscache.tld` 提供了关于OSCache JSP标签的元数据,如标签的名称、属性、行为等,使得开发者能够在JSP页面上方便地使用OSCache提供的缓存功能。 `oscache.properties` 是OSCache的配置文件,...

    OSCache学习例子 实例

    在这个"OSCache学习例子 实例"中,我们将深入探讨如何在J2EE环境中集成并使用OSCache。 首先,理解OSCache的基本概念至关重要。OSCache的核心功能是提供内存中的对象缓存,它支持两种主要的缓存模式:本地缓存和...

    oscache缓存配置

    在Java项目中,通常将其添加到项目的类路径(classpath)中,以便程序能够找到并使用osCache的相关类。 接着,我们需要配置osCache的行为,这通常通过oscache.properties文件实现。这个文件定义了缓存的各种参数,...

    教你如何用好oscache的详细文档

    在本文中,我们将深入探讨 osCache 的核心概念、使用场景以及如何在项目中有效地利用它。** ### 一、缓存的重要性 在Web应用中,缓存是一种常见的优化手段,它能够显著提升系统的响应速度,减轻数据库的压力。当...

    oscache-2.4.1-full

    - `readme.txt`:包含了关于如何安装、配置和使用OSCache的指南,以及可能的变更和注意事项。 - `www.pudn.com.txt`:可能是来源或者版权信息,也可能包含额外的说明或链接。 - `src`:源代码目录,对于开发者来...

    oscache-java缓存框架

    - **API集成**:使用osCache提供的API进行缓存的增删改查操作,如`CacheManager.getInstance().getCache("myCache")`获取缓存实例。 4. **使用教程** - **创建缓存**:定义一个缓存,例如`Cache cache = ...

    Oscache框架的搭建步骤

    6. **集成到JSP页面**:在JSP页面中引入Oscache标签库,使用`&lt;%@taglib uri="oscache" prefix="cache"%&gt;`声明,其中`uri`值应与`web.xml`中配置的`&lt;taglib-uri&gt;`一致。 7. **实现缓存逻辑**:在JSP页面中利用...

    oscache缓存使用总结.doc

    OSCache 是一个广泛使用的开源缓存解决方案,尤其在Java应用中,它被JBoss, Hibernate, Spring等知名框架所支持。其主要特点是配置简单,适用于页面级别的缓存管理。以下是对OSCache配置和使用过程的详细说明: 1. ...

    oscache详细配置文档

    本文将详细介绍 OSCache 的配置和使用方法。 **一、缓存整个页面** OSCache 提供了一个名为 `CacheFilter` 的过滤器,该过滤器用于实现页面级别的缓存。通过在 `web.xml` 文件中配置,我们可以指定哪些页面或一组...

    oscache缓存技术

    - **清理缓存**:可以调用`OsCache.clear()`方法清空整个缓存,或者使用`OsCache.evict(key)`清除指定的缓存条目。 ### 4. osCache的高级特性 - **事件监听**:osCache允许注册监听器来处理缓存的添加、删除和更新...

    oscache-2.2jar包

    4. **docs**:文档目录,一般包含API文档、用户手册或者开发者指南,帮助开发者理解osCache的使用方法、API接口和最佳实践。 5. **src**:源代码目录,如果提供的话,可以查看osCache的内部实现,这对于学习和调试...

    oscache说明

    2. **部分页面缓存**:通过使用 OSCache 提供的 Taglib,可以在 JSP 页面中使用 `&lt;cache&gt;` 标签来缓存特定部分的内容。在 `web.xml` 中添加对 Taglib 的支持,然后在 JSP 页面中引入标签库,如 `...

    oscache对象缓存

    oscache,全称OpenSymphony OSCache,是一个广泛使用的开源Java对象缓存框架,它允许开发者将数据存储在内存中,以减少对数据库的访问,从而提升应用的响应速度。本文将深入探讨oscache的核心概念、工作原理以及如何...

    基于OSCache的页面缓存(收藏)

    要使用OSCache,我们需要在项目的类路径下引入OSCache的jar包,如`oscache.jar`。然后,在初始化阶段,通过配置文件(通常为`oscache.properties`)设置缓存的相关参数,如缓存大小、过期时间、是否启用持久化等。...

Global site tag (gtag.js) - Google Analytics