之前做的项目面临一个优化的问题..对于一些网站类型的项目.我们可以采取的方案就是减少和数据库方面的交换..这样我们可以使用缓存..由于项目使用Hibernate已经使用了Ehcache的2级缓存..这里可以在web层上使用oscache来进行缓存
oscache下载地址
http://www.opensymphony.com/oscache/download.action
需要的jar包有:oscache.jar和lib\commons-logging.jar
开发过程中需要将oscache.properties放在src下面.
oscache又分为局部缓存和全局缓存.先介绍几个局部缓存比较常用的标签
1.缓存的key将以请求的uri+查询字符串组成.如果你访问
oscache/index.jsp?name=xxx和
oscache/index.jsp?name=ppp
将得到两份缓存。缓存默认存放在application范围.缓存时间默认3600秒.即一个小时
2.这时候缓存将以name为key。不再以请求的uri+查询字符串组成,所有如果你访问
oscache/index.jsp?name=xxx和oscache/index.jsp?name=ppp
将得到一份缓存
<cache:cache key="name">
name=${param.name}
</cache:cache>
3.缓存范围设置为session。这时候缓存保持的用户的session中.如果用户关闭浏览器.再重新打开一个新浏览器.
原来的缓存内容将不存在
<cache:cache key="name" scope="session">
name=${param.name}
</cache:cache>
4.下面设置缓存时间为10秒,超过10秒后,缓存内容将消失掉.
<cache:cache key="name" time="10">
name=${param.name}
</cache:cache>
5.refresh为true将导致缓存内容过期被清除.简单地说.该属性为true用于清除缓存
<cache:cache key="name" time="60" refresh="${param.refresh}">
name=${param.name}
</cache:cache>
局部缓存清理缓存方式:
人为管理缓存<flush>标签
<cache:flush scope="application" />
清除application范围内的缓存
<cache:flush scope="session" />
清除session范围内的缓存
<cache:flush scope="application" group="currencvData"/>
清除application范围内组名为currencvData的所有缓存
而局部缓存的名字重复的话后面添加到缓存将取代前面的缓存.所以命名过程中需要有规范.
下面是全局缓存的介绍.这里只需要在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>/xxx/*</url-pattern>
</filter-mapping>
全局缓存是对整个页面的url地址为key缓存相应的页面.
所以在使用全局缓存之前我们需要考虑清楚哪些页面的url我需要缓存的.在定义action的过程中需要考虑请求url的名字的命名..
<url-pattern>/xxx/*</url-pattern>
总结:在许多网站中都使用了缓存技术.而oscache使用面也比较广..使用方式根据个人的项目而定..我只是将自己了解总结一下..还有在了解许多工具和开源框架中发现许多东西都要有明确的命名规范和规定..在我们项目开发中也需要更多的规范和约束才能使得项目更好的运作..感觉开源框架也是别人所写的项目..我们可以从中得到许多信息..
分享到:
相关推荐
**Oscache使用教程** Oscache是一款开源的Java缓存解决方案,主要用于提高Web应用程序的性能,通过在内存中存储经常访问的数据,避免了频繁的数据库查询,从而减少了系统响应时间。本文将深入探讨Oscache的基本原理...
OSCache是OpenSymphony这个开源项目众多Projects中的一个。他是一个高效的J2EE缓存框架,能够很好的解决动态网站速度的问题。
一个典型的osCache使用实例可能是这样的: ```java import net.sf.oscache.CacheManager; public class OSCacheExample { public static void main(String[] args) { CacheManager cacheManager = CacheManager....
在本文中,我们将深入探讨 osCache 的核心概念、使用场景以及如何在项目中有效地利用它。** ### 一、缓存的重要性 在Web应用中,缓存是一种常见的优化手段,它能够显著提升系统的响应速度,减轻数据库的压力。当...
**三、OSCache使用指南** 1. **下载与安装** - 从OpenSymphony官方网站下载OSCache,解压缩至指定目录。 - 创建新的Web应用。 - 将`oscache.jar`放入`WEB-INF/lib`目录。 - 将`oscache.properties`和`oscache....
四、osCache使用示例 1. 添加依赖:在你的项目中引入osCache的JAR文件或通过Maven/Gradle等构建工具添加依赖。 2. 初始化缓存:在应用程序启动时初始化osCache,这通常在Servlet容器的初始化回调方法中完成。 ```...
osCache 是一款强大的缓存解决方案,尤其在Java开发中被广泛使用。它不仅提供了类似于Map的数据结构操作,还具备内置的集群支持,使得数据缓存可以在分布式环境中高效地进行。这个"oscache-2.1.1-full.zip"压缩包...
OSCache 是一个广泛使用的缓存解决方案,它支持多种技术,如 Hibernate、JSP 和页面缓存。本篇文章将深入探讨 OSCache 的配置和使用方法。 首先,安装 OSCache 包括以下几个步骤: 1. 从官方网站...
OSCache是一个高性能、易于使用的缓存组件,主要用于Web应用程序中数据的缓存管理。它可以极大地提高Web应用的性能,通过减少对数据库或其他后端系统的访问频率来降低服务器负载。OSCache支持多种缓存策略,并且可以...
在 JSP 页面中,可以通过以下方式使用 OSCache 标签库进行缓存配置: ```jsp <%@ taglib uri="http://www.opensymphony.com/oscache" prefix="oscache" %> <oscache:cache page="true" timeToLive="600"> <!-- ...
### 三、OSCache使用指南 #### 1. 安装与配置 - **下载**:从OpenSymphony官网下载OSCache的最新版本。 - **解压**:将下载的文件解压到指定目录。 - **新建Web应用**:创建一个新的Web项目。 - **集成OSCache**:...
以下是一个简单的OSCache使用示例: ```java import net.sf.oscache.CacheManager; import net.sf.oscache.Cache; // 初始化缓存管理器 CacheManager.init("path/to/oscache.xml"); // 获取或创建名为"myCache"的...
osCache使用了基于JGroups的组通信协议来实现集群间的通信,JGroups提供了可靠的组成员发现和消息传递机制。 三、数据同步机制 osCache的数据同步策略主要基于两种机制:推送(Push)和拉取(Pull)。 1. 推送...
- **内存管理**:Oscache使用了一种基于LRU(Least Recently Used)策略的内存管理机制,自动移除最少最近使用的缓存项以保持内存使用在设定的阈值内。 - **缓存预热**:支持预加载缓存,使得应用启动后即可快速...
本示例将通过一个天气预报Web服务的场景,详细介绍OsCache的使用方法。 首先,我们需要了解OsCache的基本概念。OsCache的核心是基于哈希表的数据结构,它可以在内存中存储对象,支持自动过期策略,可以设置缓存项的...
本文档详细介绍了OSCache的配置与使用,旨在为开发者提供一份全面的参考指南。OSCache是由OpenSymphony开发的开源缓存框架,它为J2EE应用程序提供了高效、灵活的缓存解决方案。 文档介绍 文档目的: 本文档的主要...
**Oscache使用示例** 1. **引入依赖**:在项目中添加Oscache的jar包,或者通过Maven或Gradle等构建工具进行依赖管理。 2. **配置初始化**:在`web.xml`或通过代码创建`CacheManager`,加载`oscache.properties`配置...