`

使用OSCache实现页面的缓存,优化性能

 
阅读更多

使用OSCache实现页面的缓存,优化性能

 

OSCache由OpenSymphony设计,它是一种开创性的JSP定制标记应用,提供了在现有JSP页面之内实现快速内存缓冲的功能。

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

下载地址:
http://www.opensymphony.com/
http://java.net/downloads/oscache/
http://java.net/downloads/oscache/OSCache%202.4/

下载oscache-2.4-full.zip。

oscache-2.4.jar
\lib\commons-logging.jar

配置步骤:
第一步:把上述两个jar文件放置在web-inf/lib目录下
第二步:把OSCache安装目录下的/etc/oscache.properties文件放入/web-inf/classes目录。开发阶段可以把该文件放置在src目录。


一、页面的局部缓存:
缓存页面中的一部分。
我们使用Oscache的标签<oscache></oscache>来进行页面的局部缓存,使用方法如下:
<uri="http://www.opensymphony.com/oscache" prefix="oscache" %>
<oscache:cache>
 <%=new Date()%>
</oscache:cache>

缓存的key将以请求的URI+查询字符串组成,如果你访问/oscache/index.jsp?name=ttt和/oscache/index.jsp?name=ppp将得到两份缓存。缓存默认存放在application范围,缓存时间默认为3600秒,即1小时。
<oscache:cache key="name">
 name=${param.name}
</oscache:cache>
这时候缓存将以name为key,不再是请求的URI+查询字串组成,所以如果你访问/oscache/index.jsp?name=ttt和/oscache/index.jsp?name=ppp将得到一份缓存。

<oscache:cache key="name" scope="session">
 name=${param.name}
</oscache:cache>
缓存范围设置为session,这时候缓存保存在用户的session中,如果用户把浏览器关闭,再重新打开一个新浏览器,原来缓存的内容将不存在。


设置缓存的时间为15秒,超时后缓存的内容将失掉:
<oscache:cache key="name" time="15">
 name=${param.name}
</oscache:cache>

refresh为true将会导致缓存的内容过期而被清除,简单地说,该属性为true用于清除缓存。
<oscache:cache key="refresh" time="60" refresh="${param.refresh}">
 name=${param.name}
</oscache:cache>
http://localhost:8080/oscache/index.jsp?refresh=false这样访问时不缓存内容不刷新
http://localhost:8080/oscache/index.jsp?refresh=true这样访问时缓存内容被刷新


人为管理缓存<oscache:flush/>标签:
<oscache:flush scope="application"/>
清除application范围内的所有缓存

<oscache:flush scope="session" key="foobar"/>
清除session范围内的key为foobar的缓存
 
<oscache:flush scope="application" group="currencyData"/>
清除application范围内的组名为currencyData的缓存

 

二、使用OSCache作页面全局缓存
页面全局缓存将使用Filter实现(巴巴运动网产品列表显示采用的方案):

 <!-- OSCache 放在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>/product/*</url-pattern>
  </filter-mapping>


缓存的key将以请求的URI+查询字串组成,如果你访问/oscache/index.jsp?name=ttt和/oscache/index.jsp?name=ppp将得到两份缓存。缓存是在初次访问页面时进行的,后续的请求将会返回缓存中的内容。缓存中存放的内容为页面返回给用户的html源码。


清除缓存的方式与清除页面缓存相同。


OSCache的配置属性介绍:
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用于设置持久化类

分享到:
评论

相关推荐

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

    在Web应用程序中,页面缓存是一种常见的优化策略,它可以显著提高网站性能,减少服务器压力,并提供更快的用户体验。OSCache是Apache软件基金会的开源项目,它是一个高性能、易用的Java缓存框架,广泛应用于各种企业...

    基于OSCache的页面缓存

    【基于OSCache的页面缓存】是Web应用中一种有效的性能优化策略,它涉及到缓存技术、分布式系统以及系统开发等多个领域。OSCache是开源的Java缓存框架,能够帮助开发者实现高效的页面和数据缓存,从而降低数据库的...

    oscache-JSP缓存

    它为开发者提供了一种在JSP页面内部实现快速内存缓存的机制,从而显著提升了Web应用的性能。本文将深入探讨osCache的核心概念、工作原理以及如何在实际项目中进行配置和使用。 **1. osCache的基本概念** osCache是...

    hibernate+oscache实现二级缓存实例

    本实例将介绍如何结合Hibernate和OSCache实现二级缓存,以优化应用程序的性能。 一级缓存是Hibernate内置的Session级别的缓存,它存储了在同一个Session内操作的对象,避免了频繁的数据库读写。然而,一级缓存仅...

    OSCACHE配置URL实现页面缓存的Fliter(修改配置无需重启)

    标题 "OSCACHE配置URL实现页面缓存的Filter(修改配置无需重启)" 提示我们讨论的是一个使用OSCache(OpenSymphony Cache)库来缓存Web应用程序中特定URL页面的过滤器配置。OSCache是一个开源的Java缓存框架,用于提高...

    oscache,缓存机制的使用

    oscache是一种缓存机制,主要用于提高Web应用的响应速度和优化系统性能。以下是对这些知识点的详细解析: ### oscache简介 oscache是一款开源的Java缓存解决方案,其核心功能在于能够缓存Web应用中的动态内容,...

    应用OSCache提升J2EE系统运行性能

    OSCache是Java应用程序中常用的缓存解决方案之一,尤其在J2EE系统中,它能显著提升系统的运行性能。本文将深入解析OSCache的工作原理、主要功能以及如何在实际项目中应用,以帮助开发者理解并有效地利用这个工具。 ...

    OSCache缓存jsp例子

    在JSP页面缓存中,OSCache会将编译后的JSP页面存储在内存中,当客户端请求相同的JSP页面时,直接从缓存中获取,而无需重新编译和执行。 要使用OSCache,你需要在项目中引入OSCache的依赖。如果你使用的是Maven,...

    页面缓存的小测试

    总结来说,页面缓存是提升Web应用性能的有效手段,OSCache作为一款强大的Java缓存框架,提供了丰富的功能和良好的扩展性,能够帮助开发者轻松实现缓存管理。理解和掌握OSCache的使用,有助于我们构建更高效、更稳定...

    oscache 整个页面查询数据 与部分数据

    8. **监控与管理**:osCache提供了一个管理控制台,可以实时监控缓存的状态,包括缓存命中率、大小、内存使用情况等,便于开发者调整和优化缓存策略。 总结来说,osCache是Java开发中一个强大的缓存工具,它可以...

    oscache的demo

    osCache的核心功能包括对象缓存、页面缓存以及分布式缓存,使得在大型Java应用系统中能够更有效地管理内存资源。** **1. 对象缓存:** osCache允许开发者将Java对象存储到内存中,以避免每次需要这些对象时都去重新...

    一个OSCache缓存技术的关键zip包

    OSCache 是一款开源的缓存解决方案,主要用于Java应用程序,它能显著提高应用性能,通过缓存数据、对象和查询结果来减少对数据库的访问。这个关键的zip包包含了一些核心的OSCache组件和相关的文档,下面我们将深入...

    OSCache配置说明文档

    对预研过程中OSCache的实际性能进行测试,对比未使用缓存前后的响应时间和系统资源消耗,为后续的决策提供依据。 8. 结论 总结预研结果,讨论OSCache在项目中的可行性,提出可能遇到的问题及解决方案,并为后续的...

    OSCache需要的包

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

    oscache详细配置文档

    OSCache 提供了一个名为 `CacheFilter` 的过滤器,该过滤器用于实现页面级别的缓存。通过在 `web.xml` 文件中配置,我们可以指定哪些页面或一组页面需要被缓存。当客户访问并返回 HTTP 状态码为 200(表示访问成功)...

Global site tag (gtag.js) - Google Analytics