`
步青龙
  • 浏览: 297808 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
博客专栏
72ba33fb-eefe-3de1-bd65-82a6e579265d
Java面试
浏览量:0
社区版块
存档分类
最新评论

Oscache攻略

阅读更多

 

什么时候需要缓存?

1.被处理内容短时间不变  

2. 在一个不太长的时间内,被处理的内容可能或者必定产生变化,所以必须将他们作为动态内容进行处理

解决方法

当上述的基础数据或者统计报表第一次被访问时,被处理的内容被当作动态信息,基础数库从数据库中获得,统计报表也会被生成符合要求的图形、文件,然后这些信息都会被放入缓存信息中。

  当上述的基础数据或者统计报表继续被访问时,系统将会首先检查缓存信息中是否有对应的内容和我们设定的缓存规则,如果符合缓存信息存在而且符合缓存规则,给出的响应将来自于缓存信息,如果没有或者缓存信息已经不符合设定的要求,系统将重复上一步的动作。 

property文件中写中文的配置

EclipseServerTomcat下配置Paths 右边的窗口中Prepend to classpath 加入 jdklib下的tools.jarAppend to classpath 启动classpath加入jrelibrt.jarcharset.jar

持久化缓存内容就是将缓存的内容保存到磁盘中,示例如下:

cache.memory=false          cache.capacity=1000             cache.path=c:\\oscache  

cache.persistence.class=com.opensymphony.oscache.plugins.diskpersistence.DiskPersistenceListener

<oscache:cache>

<%=new Date()%>

</oscache:cache>

使用默认的关键字来标识cache内容, 将以URI和查询字符串组成,如果访问/oscache/index.jsp?name=ttt/oscache/index.jsp?name=ppp将得到两分缓存,缓存默认放到application范围,缓存时间默认为一个小时

 

<oscache:cache key = "name"  time = "10"  refresh=${param.refresh}  scope="session" >

name=${param.name}

</oscache:cache> 

这时候缓存将以namekey,不再是请求URI+查询字符串组成,所以如果你访问/oscache/index.jsp?name=ttt/oscache/index.jsp?name = ppp将得到一份缓存,上面设置了缓存的时间为10s,超过10s后,缓存内容讲失掉scope="session"缓存范围设置为session,这时候缓存保存在用户的session中,Refreshtrue将会导致缓存的内容过期而被清除,Refresh="true"用户清除缓存,如果用户把浏览器关闭,在重新打开一个新的浏览器,原来缓存的内容将不存在

 

<oscache:flush scope="appliaction">  清除application所有的缓存

<oscache:flush scope="session" key = "foobar">清除session范围内的keyfoobar的缓存

<oscache:flush scope="application" group="currencyDate">清除application范围内名为currencyDate内的所有缓存

 

页面的全局缓存

web.xml 配置过滤器并设置所有的jsp都进行缓存

<filer-mapping><url-pattern>*.jsp</url-pattern>都执行过滤器

<file-name>CacheFiler</file-name>

 

动态设定key值,使用自己指定的time属性设定缓存内容的超时时间,使用动态refresh值决定是否强制内容刷新。 因为OSCache使用key值来标识缓存内容,使用相同的key值将会被认为使用相同的的缓存内容,所以使用动态的key值可以自由的根据不同的角色、不同的要求决定使用不同的缓存内容。 
key="<s:property value = "hcinfo.id"/>"   

refresh="<s:property value = "needreflush"/>" 

设置time属性为负数使缓存内容永不过期 

使用duration属性设置超期时间   duration=''5s''  

使用mode属性使被缓存的内容不加入给客户的响应中  mode=''silent''  

 

<filter-name>CacheFilter</filter-name>

缓存单个文件 web.xml
<url-pattern>/testContent.jsp</url-pattern> 

对所有jsp页面内容进行缓存
<url-pattern>*.jsp</url-pattern>  

自己设定缓存属性  

页面缓存的情况下配置的web.xml init-param中配置作用域
<param-name>scope</param-name><param-value>session</param-value> 

配置过期时间

<param-name>time</param-name><param-value>600</param-value>  


 如果refresh属性设置为true,不管其他的属性是否符合条件,这部分被缓存的内容都将被更新,这给编程者一种选择,决定什么时候必须刷新。  

其他属性cron 、groups、language、refreshpolicyclass、refreshpolicyparam 

 

将oscache.properties、oscache.tld放入WEB-INF\class目录  

<taglib> 
<taglib-uri>oscache</taglib-uri> 
<taglib-location>/WEB-INF/classes/ oscache.tld</taglib-location> 
</taglib>  

Jsp:<%@ taglib uri = "/WEB-INF/classes/oscache.tld" prefix = "cache" %> 

 

页面缓存中还需要做的一个步骤就是通知缓存需要更新 

在实现页面缓存时最麻烦的主要是缓存的 key的定义以及缓存更新的通知,缓存 key 的定义这个自然框架是没法解决的,不过缓存更新的通知其实在框架中可以考虑一种通知模型的, 就像事件通知那样 ........ 在实际的项目中,可以自己去实现一个这样的通知模型或者就是简单的采用单例方式来标识某个 key 是否需要更新。 

 

下面是OSCache的学习文档和项目示例

使用Oscache的时候 java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory

    解决办法 该错是找不到日志类,加入 加入common-loggin.jar就可以了

分享到:
评论
1 楼 wayJava 2010-11-16  
谢谢分享。项目中正要用到。

相关推荐

    OSCache学习例子 实例

    OSCache是开源的Java缓存解决方案,主要用于提高Web应用程序的性能和响应速度。它是由OpenSymphony团队开发的,能够缓存对象、SQL查询结果甚至整个页面,避免了频繁访问数据库或执行昂贵的计算,从而降低了系统负载...

    oscache-2.1.jar

    oscache-2.1.jar oscache-2.1.jar

    oscache缓存配置

    《osCache缓存配置详解》 osCache是Java平台上的一个高效、易用的缓存解决方案,它由Tuckey组织开发,广泛应用于各种Web应用中,以提高数据读取速度,减轻数据库压力。osCache的核心功能是提供了一个内存中的对象...

    Oscache框架的搭建步骤

    ### Oscache框架的搭建与应用详解 在现代Web开发中,缓存技术是提升系统响应速度、优化用户体验的关键策略之一。Oscache框架作为一种高效、灵活的缓存解决方案,在Java Web应用,尤其是JSP环境中,提供了强大的缓存...

    oscache缓存技术入门实例

    osCache 是一个开源的、基于Java的缓存框架,它为Java应用程序提供了高效且可配置的内存缓存功能。在本文中,我们将深入探讨osCache的基本概念、工作原理以及如何在实际项目中进行配置和使用。 一、osCache基本概念...

    OSCache需要的包

    OSCache 是一个高效的、开源的缓存框架,主要用于 Java 应用程序,它提供了一种在内存中存储对象的方式,以提高数据访问速度并减轻数据库的负载。在Java Web开发中,OSCache常被用于实现Session复制和分布式缓存,...

    oscache详细配置文档

    OSCache 是一个强大的开源缓存解决方案,主要用于提升 Java Web 应用程序的性能。它能够缓存页面内容,减轻数据库压力,并减少服务器的资源消耗。本文将详细介绍 OSCache 的配置和使用方法。 **一、缓存整个页面** ...

    OSCache配置说明文档

    本文档的主要目的是阐述OSCache的核心功能、配置方法以及实际应用中的操作步骤,帮助开发者理解和有效地利用OSCache提升应用程序性能。 阅读对象: 此文档适合对Java Web开发有一定了解,希望引入缓存机制以优化...

    oscache-2.4.1-full

    OSCache是OpenSymphony开发的一款高效、开源的Java缓存框架,主要应用于Web应用程序,特别是JSP环境。其核心功能是提供内存级别的缓存服务,从而显著提高网页的加载速度和减少数据库的压力。标题"oscache-2.4.1-full...

    oscache处理

    - 配置osCache插件:首先需要将osCache的jar包添加到项目类路径中,然后在struts.xml配置文件中引入osCache拦截器,并配置相应的拦截规则。 2. **iBatis与osCache**: - iBatis是一个轻量级的持久层框架,它允许...

    oscache-java缓存框架

    osCache是Java开发中常用的缓存框架之一,它主要用于提高应用程序的性能和效率,通过将数据存储在内存中,减少对数据库的访问。osCache不仅可以用于Web应用,也可以用于任何Java应用程序,支持集群环境,提供了丰富...

    oscache的使用实例和详解

    **osCache:高效缓存框架详解与实例应用** osCache是一款流行且强大的Java缓存框架,主要用于提高应用程序的性能和响应速度。它通过将经常访问的数据存储在内存中,避免了反复读取数据库或计算数据的过程,从而显著...

    oscache(JSP定制标记应用)

    javaweb做页面缓存常用,OSCache是一个工业级的J2EE缓存实现。OSCache不但能缓存java对象,还可以缓存页面,http请求和二进制内容,例如pdf文件等。通过应用OSCache,我们不但可以实现通常的Cache功能,还能够改善...

    OsCache缓存框架使用示例

    OsCache是Java应用程序中常用的缓存框架,它能够有效地提高应用程序的性能,通过将经常访问的数据存储在内存中,减少对数据库或其他数据源的访问,从而降低系统负载。本示例将通过一个天气预报Web服务的场景,详细...

    oscache缓存技术

    **osCache缓存技术详解** osCache是一款广泛应用于Java应用程序中的开源缓存解决方案,由OpenSymphony团队开发。它提供了一种高效、可扩展的方式来管理应用程序中的数据缓存,从而提高系统的性能和响应速度。...

    oscache-2.2jar包

    osCache是Java平台上的一个开源缓存解决方案,主要用于提高应用程序的性能和响应速度。oscache-2.2jar包是该软件的一个版本,版本号为2.2。它包含了一系列的类和接口,用于实现内存中的对象缓存,从而减少对数据库或...

Global site tag (gtag.js) - Google Analytics