OSCache实现页面缓存

缓存技术有:页面缓存(View,html代码)缺点是不能做到实时更新,优点是比二级缓存性能更高;二级缓存(mode/业务层,domain对象)优点是实时更新 

缓存产品有:EHCahce、 OSCache、JbossCache(分布式缓存) 

页面缓存 
1、清除缓存:
 
<!-- refresh为true将会导致缓存的内容过期而被清除,简单地说,该属性为true用于清除缓存 --> 
  <!-- <oscache:flush scope="application"/>清除application范围内的所有缓存; 
  <oscache:flush scope="session" key="huhui"/>清除session范围内的key为huhui的缓存 
  <oscache:flush scope="application" group="hu"/>清除application范围内组名为hu内的所有缓存 --> 
<%@ page language="java" pageEncoding="UTF-8"%> 
<%@taglib uri="http://www.opensymphony.com/oscache" prefix="oscache" %> 
<oscache:flush scope="applocation"/>缓存已清除 

2、局部缓存: 
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> 
<%@ taglib uri="http://www.opensymphony.com/oscache" prefix="oscache" %> 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 
<html> 
  <head> 
    <title>My JSP 'index.jsp' starting page</title> 
<meta http-equiv="pragma" content="no-cache"> 
<meta http-equiv="cache-control" content="no-cache"> 
<meta http-equiv="expires" content="0"> 
  </head> 
  
  <body><!-- 这是局部缓存 --> 
  <oscache:cache key="huhui" scope="session" time="15" refresh="${param.refresh }"> 
  <!-- 是使用Map对象来存储缓存的,默认的key是uri路径,如:/oscache/index.jsp,也可以指定它的key --> 
  <!-- 缓存默认存放在application范围,缓存时间默认为3600秒,即1小时 --> 
    <div><%=new Date() %></div> 
  </oscache:cache> 
  当前时间:<%=new Date() %> 
  </body> 
</html> 

3、全局缓存: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/list.do</url-pattern> 
   </filter-mapping> 

4、内存缓存/硬盘缓存(推荐使用内存缓存,比硬盘缓存要快得多)oscache.properties 
#指定是否使用内存缓存,默认值为true,即使用内存缓存 
cache.memory=true 
#指定缓存的容量,默认的容量是无限的 
cache.capacity=30000 

#如果要使用硬盘缓存,可以这样设置: 
cache.memory=false 
#指定缓存保存的路径 
cache.path=E:\\oscache 
#用于设置持久化的类cache.persistence.class=com.opensymphony.oscache.plugins.diskpersistence.DiskPersistenceListener

几个著名Java开源缓存框架介绍(OSCache,JSC) 
OSCache是个一个广泛采用的高性能的J2EE缓存框架,OSCache能用于任何Java应用程序的普通的缓存解决方案。 

OSCache有以下特点:

缓存任何对象,你可以不受限制的缓存部分jsp页面或HTTP请求,任何java对象都可以缓存。

拥有全面的API--OSCache API给你全面的程序来控制所有的OSCache特性。

永久缓存--缓存能随意的写入硬盘,因此允许昂贵的创建(expensive-to-create)数据来保持缓存,甚至能让应用重启。

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

缓存记录的过期--你可以有最大限度的控制缓存对象的过期,包括可插入式的刷新策略(如果默认性能不需要时)。

Java Caching system 
JSC(Java Caching system)是一个用分布式的缓存系统,是基于服务器的java应用程序。它是通过提供管理各种动态缓存数据来加速动态web应用。 

JCS和其他缓存系统一样,也是一个用于高速读取,低速写入的应用程序。动态内容和报表系统能够获得更好的性能。如果一个网站,有重复的网站结构,使用间歇性更新方式的数据库(而不是连续不断的更新数据库),被重复搜索出相同结果的,就能够通过执行缓存方式改进其性能和伸缩性。

EHCache 
EHCache 是一个纯java的在进程中的缓存,它具有以下特性:快速,简单,为Hibernate2.1充当可插入的缓存,最小的依赖性,全面的文档和测试。

 JCache  
JCache是个开源程序,正在努力成为JSR-107开源规范,JSR-107规范已经很多年没改变了。这个版本仍然是构建在最初的功能定义上。

ShiftOne  
ShiftOne Java Object Cache是一个执行一系列严格的对象缓存策略的Java lib,就像一个轻量级的配置缓存工作状态的框架。 

SwarmCache 
SwarmCache是一个简单且有效的分布式缓存,它使用IP multicast与同一个局域网的其他主机进行通讯,是特别为集群和数据驱动web应用程序而设计的。
SwarmCache能够让典型的读操作大大超过写操作的这类应用提供更好的性能持。 SwarmCache使用JavaGroups来管理从属关系和分布式缓存的通讯。

TreeCache / JBossCache  
JBossCache是一个复制的事务处理缓存,它允许你缓存企业级应用数据来更好的改善性能。缓存数据被自动复制,让你轻松进行JBoss服务器之间的集群工作。JBossCache能够通过JBoss应用服务或其他J2EE容器来运行一个MBean服务,当然,它也能独立运行。 

JBossCache包括两个模块:TreeCache和TreeCacheAOP。
 TreeCache --是一个树形结构复制的事务处理缓存。
TreeCacheAOP --是一个“面向对象”缓存,它使用AOP来动态管理POJO(Plain Old Java Objects) 注:AOP是OOP的延续,是Aspect Oriented Programming的缩写,意思是面向方面编程。

 WhirlyCache  

Whirlycache是一个快速的、可配置的、存在于内存中的对象的缓存。它能够通过缓存对象来加快网站或应用程序的速度,否则就必须通过查询数据库或其他代价较高的处理程序来建立。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值