oscached

来源:互联网 发布:单片机romram图片 编辑:程序博客网 时间:2024/06/18 05:41

介绍
提供了在现有JSP页面之内实现快速内存缓冲的功能,是一个广泛采用的高性能的J2EE缓存框架,OSCache能用于任何Java应用程序的普通的缓存解决方案。
特点:缓存任何对象,你可以不受限制的缓存部分jsp页面或HTTP请求,任何java对象都可以缓存。拥有全面的API–OSCache API给你全面的程序来控制所有的OSCache特性。永久缓存–缓存能随意的写入硬盘,因此允许昂贵的创建(expensive-to-create)数据来保持缓存,甚至能让应用重启。支持集群–集群缓存数据能被单个的进行参数配置,不需要修改代码。缓存记录的过期–你可以有最大限度的控制缓存对象的过期,包括可插入式的刷新策略。

页面添加标签
<%@taglib uri=”http://www.opensymphony.com/oscache” prefix=“oscache”%>
功能
缓存默认存放在application范围,缓存时间默认为3600秒,即1小时.

1)
< oscache:cache>
<%=new Date() %>
< /oscache:cache>
缓存的key将以请求的URI+查询字串组成,
如果你访问/oscache/index.jsp?name=ttt
和/oscache/index.jsp?name=ppp将得到两份缓存。

2)
< oscache:cache key=“name”>
name=${param.name}
< /oscache:cache>
这时候缓存将以name为key,不再是请求的URI+查询字串组成,
所以如果你访问/oscache/index.jsp?name=ttt和/oscache/index.jsp?name=ppp将得到一份缓存。

3)
< oscache:cache key=”name” scope=”session”>
name=${param.name}
< /oscache:cache>
缓存范围设置为session,这时候缓存保存在用户的session中,如果用户的把浏览器关闭,再重新打开一个新浏览器,原来缓存的内容将不存在。

4)
< oscache:cache key=”name” time=”10”>
name=${param.name}
< /oscache:cache>
上面设置了缓存的时间为10秒,超过10秒后,缓存的内容将失掉。

5)
< oscache:cache key=”name” time=”60” refresh=”${param.refresh}”>
name=${param.name}
< /oscache:cache>
refresh为true将会导致缓存的内容过期而被清除,简单地说,该属性为true用于清除缓存

6)
人为管理缓存标签:
< oscache:flush scope=”application” />
清除application范围内的所有缓存
< oscache:flush scope=”session” key=”foobar” />
清除session范围内的key为foobar的缓存。

7)< oscache:flush scope=”application” group=”currencyData” />
清除application范围内组名为currencyData内的所有缓存。

8)
页面全局缓存将使用Filter实现
< 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>*.jsp< /url-pattern>
< /filter-mapping>

缓存的key将以请求的URI+查询字串组成,如果你访问/oscache/index.jsp?name=ttt和/oscache/index.jsp?name=ppp将得到两份缓存。缓存是在初次访问页面时进行的,后续的请求将会返回缓存中的内容。缓存中存放的内容为页面返回给用户的html源代码。

8)
cache.memory=true
指定是否使用内存缓存,默认值为true,即使用内存缓存。
cache.capacity
指定缓存的容量,默认的容量是无限的。我们可以为它设置缓存数量,如:
cache.capacity=100000

如果我们要使用硬盘缓存,可以这样设置:
cache.memory=false
cache.path=d:\cache (指定,缓存保存的路径,注意:路径应采用双\符)
cache.persistence.class=com.opensymphony.oscache.plugins.diskpersistence.DiskPersistenceListener
cache.persistence.class用于设置持久化类。

项目结构

这里写图片描述

oscache.properties

cache.capacity=1000cache.memory=false//保存硬盘路径cache.path=H:\\java\\cachecache.persistence.class=com.opensymphony.oscache.plugins.diskpersistence.DiskPersistenceListener

index.jsp

<%@ 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" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Insert title here</title></head><body>当前时间<%=new Date() %><br><!--time="3" 每3秒刷新缓存  --><oscache:cache language="UTF-8" >缓存时间<%=new Date() %></oscache:cache></body></html>

缓存测试
1)session

这里写图片描述

这里写图片描述

2)默认appliaction
这里写图片描述
这里写图片描述

3)key
这里写图片描述
这里写图片描述
这里写图片描述

4)time
这里写图片描述
5)保存在硬盘
这里写图片描述
这里写图片描述

0 0