欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

网站优化技术——OSCache实现页面缓存

程序员文章站 2022-04-15 10:51:19
...
缓存技术有:页面缓存(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