一、简介
Cache 是一种用于提高系统响应速度 、改善系统运行性能 的技术。尤其是在 Web 应用中,通过缓存页面的输出结果,可以很显著的改善系统运行性能。
OSCache标记库由OpenSymphony设计,它是一种开创性的缓存方案,它提供了在现有JSP页面之内实现内存缓存的功能。OSCache是个一个被广泛采用的高性能的J2EE缓存框架,OSCache还能应用于任何Java应用程序的普通的缓存解决方案。
OSCache 是当前运用最广的缓存方案, JBoss,Hibernate,Spring 等都对其有支持。
Oscache 的使用非常方便,特别是 jsp cache 用的非常广泛。 Oscache 的文档中也对 jsp cache tag 的配置有详细说明。相关内容请参考 OSCache 的 在线文档
对使用 Cache 的测试结论:
使用 cache ,随着循环的增多,用时增长较缓慢,而不使用 cache 基本是等比例增长。在循环次数较多时,使用 cache cpu 利用率显著提高,能达到 90 %以上。不使用 cache 则只能上到 50% 左右,更多是在等待数据库返回结果。所以使用 cache 能大大减轻数据库的压力,提高应用服务器的利用率,符合我们对应用服务器进行水平扩展的要求。
二、 OSCache的特点和 主要特征
(一)、 OSCache有以下特点
1 、 缓存任何对象:你可以不受限制的缓存部分jsp页面或HTTP请求,任何java对象都可以缓存。
2 、 拥有全面的API:OSCache API允许你通过编程的方式来控制所有的OSCache特性。
3 、 永久缓存:缓存能被配置写入硬盘,因此允许在应用服务器的多次生命周期间缓存创建开销昂贵的数据。
4 、 支持集群:集群缓存数据能被单个的进行参数配置,不需要修改代码。
5、缓存过期:你可以有最大限度的控制缓存对象的过期,包括可插入式的刷新策略(如果默认性能不能满足需要时)。
(二)、 主要特征
1. 兼容多种支持 JSP 的 web 服务器
已经通过兼容测试的 web 服务器包括 OrionServer (1.4.0 或者以上版本 ) 、 Macromedia JRun (3.0 或者以上版本 ) 、 BEA Weblogic (7.x 或者以上版本 ) 、 IBM Websphere (5.0 版本 ) 、 Silverstream (3.7.4 版本 ) 、 Caucho Resin (1.2.3 或者以上版本 ) 、 Tomcat (4.0 或者以上版本 ) ,其他支持 servlet2.3 、 jsp1.2 的 web 服务器应该都是完全兼容 OSCache 的。
2. 可选的缓存区
你可以使用内存、硬盘空间、同时使用内存和硬盘或者提供自己的其他资源(需要自己提供适配器)作为缓存区。
使用内存作为缓存区将可以提供更好的性能
使用硬盘作为缓存区可以在服务器重起后迅速恢复缓存内容
同时使用内存和硬盘作为缓存区则可以减少对内存的占用
3. 灵活的缓存系统
OSCache 支持对部分页面内容 或者对页面级 的响应内容进行缓存,编程者可以根据不同的需求、不同的环境选择不同的缓存级别。
4. 容错
在一般的 web 应用中,如果某个页面需要和数据库打交道,而当客户请求到达时, web 应用和数据库之间无法进行交互,那么将返回给用户 " 系统出错 " 或者类似的提示信息,如果使用了 OSCache 的话,你可以使用缓存提供给用户,给自己赢得维护系统或者采取其他补救的时间。
其它特性还包括对集群的支持、缓存主动刷新等特性,大家可以参考 OpenSymphony 网站上的其他资源获取更多的信息。