`
jack.zhao829
  • 浏览: 23977 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

OSCache使用总结

阅读更多

1.介绍:

  OSCache是一个广泛采用的高性能的J2EE缓存框架,能用于任何Java应用程序的缓存解决方案,它也是一种开创性的JSP地址标记应用,提供了在现有JSP页面之内实现快速缓冲功能。

2.特点:

   可以缓存任何对象,不受限制的的缓存部分JSP页面或者HTTP请求。

   永久缓存,缓存能随意的写入硬盘或者数据库

   支持集群,集群缓存的数据能进行单个参数配置,不需要修改代码

   缓存的有效期,可以最大限度的控制缓存对象的过期,包括可插入式刷新策略

3.配置:

  cache.memory:值为true或false,默认为用内存作为缓存(如果设置为false,那么擦车只能缓存到硬盘或数据库中)

   cache.capacity:缓存元素个数

   cache.persistenece.class:持久化缓存类,如此类打开,必须修改oscache.properties中的cache.path信息(win系统类路径类似为c:\\web\\cacheinfo,unix系统类路径类似为/opt/web/cacheinfo)

   cache.cluster 设置集群相关信息,如:cache.cluster.multicast.ip为广播IP地址,cache.cluster.properties为集群属性

4.缓存过滤

    在web.xml中定义缓存过滤器,定义缓存特定资源(cacheFilte只捕获http头为200的页面请求)

5.oscache和hashmap的比较:

   在多线程环境中oscache比hashmap的并发性好,hashmap是对整个hashmap加锁,而oscache是对各个缓存对象更新加锁

  oscache的cache是由并发读,互斥写机制实现的,可以失效读的并发,但不支持并发写,jdk1.5下的concurrentHashMap是支持并发读和并发写的一个map,其性能会更高

6.oscache主要有三类操作(getFromCache,putInCache,removeEntry):

    第一次调用getFromCache会抛异常,抛异常的时候标示需要更新缓存(putInCache),而且一定要对缓存更新或者取消更新,否则会占用缓存对象的锁,其他线程调用getFromCache的时候会被阻塞,更新缓存的时候调用putInCache,如果失败则调用cancelUpdate,否则也会阻塞其他线程,其中更新缓存状态的方法有cancelUpdate,completeUpdate,putInCache执行成功则会调用completeUpdate,否则应该调用cancelUpdate,而且getFromCache方法在缓存失效是会执行startUpdate也会改变缓存状态,这时需要调用cancelUpdate或者putInCache。

7.用到的jar包:

      <dependency>

          <groupId>opensymphony</groupId>

          <artifactId>oscache</artifactId>

          <version>2.4.1</version>

        </dependency>

       <dependency>

            <groupId>commons-logging</groupId>

            <artifactId>commons-logging</artifactId>

            <version>1.1.3</version>

       </dependency>

        <dependency>

            <groupId>log4j</groupId>

            <artifactId>log4j</artifactId>

            <version>1.2.17</version>

       </dependency>

8.示例如下:

public class OSCacheUtils{

private GeneralCacheAdministrator cacheAdmin;

//获取缓存信息

    public String getCacheInfo() {

// 加入oscache缓存,缓存的有效期是5分钟

try {

if (cacheAdmin == null) {

cacheAdmin = new GeneralCacheAdministrator();

}

Object result = cacheAdmin.getFromCache("mykey",

5 * 60);

if (result != null) {

return result.toString();

}

} catch (NeedsRefreshException e) {

try {

String str ="make your uncomfortable";

cacheAdmin.putInCache("mykey", str);

return str;

} catch (IOException e1) {

logger.error("error", e1);

}

} catch (Exception ex) {

cacheAdmin.cancelUpdate("mykey");

logger.error("error", ex);

}

return "error";

}

}

 

 

   

 

分享到:
评论

相关推荐

    oscache缓存使用总结.doc

    oscache缓存使用总结

    Oscache使用教程

    Oscache使用教程,基础教程。详细介绍几本原理以及几本配置。

    oscache的使用

    oscache的使用

    oscache 使用介紹

    OSCache是OpenSymphony这个开源项目众多Projects中的一个。他是一个高效的J2EE缓存框架,能够很好的解决动态网站速度的问题。

    OSCache使用文档

    OSCache使用文档OSCache使用文档OSCache使用文档OSCache使用文档OSCache使用文档OSCache使用文档OSCache使用文档OSCache使用文档OSCache使用文档

    Oscache使用手册

    Cache是一种用于提高系统响应速度、改善系统运行性能的技术。尤其是在Web应用中,通过缓存页面的...OSCache是个一个被广泛采用的高性能的J2EE缓存框架,OSCache还能应用于任何Java应用程序的普通的缓存解决方案。。。。

    oscache的使用实例和详解

    缓存框架oscache 的使用实例和详细解释,

    OSCache配置说明文档

    OSCache由OpenSymphony设计,它是一种开创性的JSP定制标记应用,提供了在现有JSP页面之内实现快速内存缓冲的功能。OSCache是一个广泛采用的高性能的J2EE缓存框架,OSCache能用于任何Java应用程序的普通的缓存解决...

    OsCache缓存框架使用示例

    这里结合 天气预报的webservice 展示了OsCache框架的具体使用方法 项目可直接运行 ,代码简洁清晰

    oscache-2.1.jar

    oscache-2.1.jar oscache-2.1.jar

    oscache,缓存机制的使用

    oscache,java,缓存机制的使用

    oscache(JSP定制标记应用)

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

    Oscache框架的搭建步骤

    使用oscache进行缓存,大大提高web系统运行效率

    oscache的一些使用

    总结了oscache的一些使用方法,是轻量级的cache必选,很值得一看

    oscache-java缓存框架

    oscache-java缓存框架插件和安装教程,使用教程一步到位

    用OSCache进行缓存对象

    1、OSCache是什么? 2、OSCache的特点 3、有关“用OSCache进行缓存对象”的研究

    oscache缓存技术入门实例

    oscache缓存技术入门实例

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

    oscache的详细文档,很easy,好好用。

    OSCache学习例子 实例

    OSCache学习例子 实例 很好的与j2ee结合

    oscache文档

    OSCache标记库由OpenSymphony设计,它是一种开创性的JSP定制标记应用,提供了在现有JSP页面之内实现快速内存缓冲的功能。OSCache是个一个广泛采用的高性能的J2EE缓存框架,OSCache能用于任何Java应用程序的普通的...

Global site tag (gtag.js) - Google Analytics