`
cevin15
  • 浏览: 29151 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

使用oscache加速你的web程序

阅读更多
网上找了一下关于web开发方面可使用的缓存技术,发现oscache是个好东西!找到一些网友写得不错的关于oscache入门的博文。转载一篇于此。

首先还是贴上原博文的地址:http://leeboysam.blog.163.com/blog/static/214194020066181110300/

OSCache:她是现在最广泛缓存解决方案,采用的高性能的J2EE缓存框架, OSCache能用于任何Java应用程序。

这里可以下载到最新的OSCache的jar包:http://java.net/downloads/oscache/

1、OSCache的配置

将下载的oscache-x.x.x-full.zip解压,将etc目录下的oscache.properties 、oscache.tld 及 oscache.jar,还有lib目录下的commons-logging.jar,jgroups-all.jar放到你工程下。具体位置如下:oscache.properties 、oscache.tld到src的根目录,三个jar包放在lib目录下。

然后要配置一下web.xml,加上以下配置。
	<jsp-config>
		<taglib>
			<taglib-uri>oscache</taglib-uri>
			<taglib-location>/WEB-INF/classes/oscache.tld</taglib-location>
		</taglib>
	</jsp-config>


好了,配置完成,现在可以测试一下了。编写一个页面如下,我们通过两个时间来对比就可以发现OSCache是否起作用啦。这里我们使用了OSCache的<os:cache>标签,“time='20'”代表缓存的过期时间。

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="os" uri="oscache" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>test</title>
  </head>
  
  <body>
    <%=new Date()%><br>
    <os:cache time="20"><br>
    	<%=new Date()%>
    </os:cache>
  </body>
</html>


2、基于过滤器Filter来配置OSCache。

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>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>/*</url-pattern>
	</filter-mapping>


上面定义将缓存所有页面,缓存刷新时间为60秒,缓存作用域为Session。

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

----------------------------------补充-------------------------------------

有时候,会发现使用oscache的自定义标签或者过滤器很难满足我们的一些缓存的需求,我们可以使用com.opensymphony.oscache.general.GeneralCacheAdministrator来对具体对象进行缓存。

GeneralCacheAdministrator主要对实现持久化对象的保存以及取出的相关的操作,主要方法如下:

Object getFromCache(String key)    //根据key获取缓存对象
Object getFromCache(String key, int refreshInterval)    //refreshInterval时间内,根据key获取缓存对象
void putInCache(String key, Object obj)     //保存被缓存对象
void flushAll()    //删除所有被缓存的对象
void flushAll(Date date)    //在指定的时间去删除所有被缓存的对象
void cancelUpdate(String key)    //取消未确定的更新


以上例子本人已经测试通过,如果有什么问题可以在回复中提出,大家一起探讨。
分享到:
评论

相关推荐

    Oscache_入门

    - **通用性**:除了Web应用外,Oscache还可以应用于任何Java应用程序,作为一种通用的缓存解决方案。 #### 二、Oscache的优势 Oscache具有多项优势,使其成为众多开发者首选的缓存工具。 ##### (一)Oscache的...

    hibernate 二级缓存收集、总结、整理

    缓存可以位于硬件或者软件系统中,缓存的作用是加速数据访问速度,让数据更接近于应用程序,协调速度不匹配的问题。 常见的缓存算法有: 1. LFU(Least Frequently Used):最近不常被使用的数据,即命中率低的数据...

    Java中各类Cache机制实现解决方案

    **WhirlyCache** 是一个高性能的缓存系统,专门用于提高Web应用程序的速度和效率。它能够通过缓存数据库查询结果来减少数据库访问次数,从而提高整体性能。WhirlyCache的主要特性包括: - **快速查询**:通过缓存...

    Spring 常见面试题

    5. **加速开发过程**:Spring 提供了大量的辅助工具类,帮助开发者快速构建应用程序。 6. **集成其他框架**:Spring 能够很好地与其他流行框架如 Hibernate、JPA 和 Struts 等进行集成,形成一个统一的开发平台。 ...

    java必备知识点大全.pdf

    Java必备知识点大全的内容非常丰富,涵盖了Java语言的基础知识、常用的框架以及数据库的应用等方面,是每一个Java开发者学习和面试时的重要参考。...OSCache+auto:自动管理OSCache的使用,确保缓存的性能和效率。

    Ehcache中文指南和实例教程

    - **Java Caching System (JCS)**:JCS是一个分布式缓存系统,主要用于加速动态Web应用。它通过管理各种动态缓存数据来提高应用的性能。对于那些具有重复结构的网站,或者采用间歇性更新方式的数据库,JCS能够显著...

    自整理Java关于基础和框架的面试题

    - **application**:Web应用程序的全局范围内有效。 ##### List, Set, Collection, Collections - **Collection**:接口,是所有集合类的父接口。 - **List**:有序集合,元素可以重复。 - **Set**:无序集合,元素...

    Java认证:各类Cache机制的实现方法

    OSCache 是一款广泛使用的高性能Java EE缓存框架,适用于任何Java应用程序。它的特点包括: - **灵活的缓存对象**:允许缓存任何类型的数据,如JSP页面、HTTP请求或Java对象。 - **全面的API**:提供了丰富的API供...

    java面试知识

    ##### OSCache业务场景 - **缓存策略**:最近最少使用(LRU)、最近未使用(LFU)等。 - **应用场景**:提高读取性能,减轻数据库压力。 ##### 线程概述 - **线程状态**:新建、就绪、运行、阻塞、终止。 - **同步...

Global site tag (gtag.js) - Google Analytics