基于缓存框架的Web缓存研究

时间:2022-08-25 10:09:13

基于缓存框架的Web缓存研究

摘要:该文重点研究了缓存框架OSCache的缓存组件与Hibernate的数据缓存管理。提出OSCache、Ehcac

>> 基于节点缓存的Web服务器性能优化研究 基于Web服务的智能客户端数据缓存问题研究 Web强缓存一致性的研究 基于REIDS缓存框架的分析与实践 Web缓存技术研究与应用 基于Internet的反向缓存技术的研究 基于Docker的Redis缓存架构的研究 基于缓存技术的信息交互总线可靠传输研究 基于Hadoop分布式缓存的研究与实践 基于CDN的视频独立队列缓存策略研究 基于缓存技术的Web应用性能优化研究 基于hibernate缓存机制的查询性能优化研究 基于Ajax轮询和缓存技术的Web实时系统的开发 WEB网站缓存性能优化 Web数据可缓存性研究和应用 基于邻居缓存的AODV路由协议 浅析缓存的意义 基于云计算环境的GIS软件缓存技术实现方法的研究 基于补丁算法的流媒体缓存的研究与实现 基于高速缓存系统的遍历查询研究与设计 常见问题解答 当前所在位置:l”的形式,其中***为该条记录的ID号码。一线操作员使用查询模块的缓存方案流程如图2所示。

使用查询模块的另一类用户是领导。他们通过查询模块了解一段时间内发生业务的总体情况,其时间间隔较长,查询数据量较庞大。对于这样的查询,查询响应的速度显得尤其重要。无论是访问数据库还是将查询结果显示到前台都会耗费过多的系统资源,必须实现分页功能缓解系统压力。将查询出来的数据一并放入缓存,只有当用户需要查看具体某页的时候才显示该页的查询结果。这样做可以避免重新获取和释放对象,不必每次都从数据库中获取数据。

此时需要这样一种机制,不仅能够在内存中保存对象同时也提供保持内存中对象更新的功能,即对象缓存。Hibernate通过对不同数据库的统一接口设计,实现透明化通用分页实现机制。以下是实现分页功能的关键函数:

Criteria.setFirstResult(int x) //从第x条记录开始获取

Criteria.setFetchSize(int y) //获取记录大小

更重要的是缓存框架作为第三方插件可以方便的引入到Hibernate中,因此对于查询模块的缓存设计提出Hibernate整合缓存框架的方案。领导使用查询模块的缓存方案如图3所示。

3.2 缓存框架的选择

在选择缓存框架之前,首先列出选择缓存框架需要达到的目标:

1) 在Web应用中能够快速访问数据。

2) 提供可配置的缓存管理,以便通过描述方式而不是编码方式修改参数。

3) 发挥多个缓存框架的优势,提供符合具体项目需求的缓存框架结构。

4) 最流行的Java开源缓存框架是OSCache和Ehcache。对于运用JSP开发表示层的Web应用来说,OSCache是一个易于操作并能快速提高性能的页面级缓存,但是对于Hibernate来说OSCache并不是最好的选择。而Ehcache本身出自于Hibernate,能够更好的支持Hibernate。因此,采用Ehcache作为Hibernate的二级缓存实现。

从整个系统的角度来说,具体缓存方案为:利用Ehcache作为Hibernate的二级缓存,实现查询结果的对象缓存,同时利用0SCache实现对JSP页面的缓存。

上述缓存方案应用于湖北省水路交通规费征稽网络系统,实现从略。

4 结束语

改文重点阐述了缓存框架OSCache的缓存组件与Hibernate的数据缓存管理。Hibernate不仅能够提供强大的、高性能的数据查询功能,而且还拥有良好的缓存管理机制。本文提出将第三方组件OSCache、Ehcache和Hibernate整合在一起的Web缓存方案,实现了页面缓存和查询结果的对象缓存,很大程度地改善了系统的性能。

参考文献:

[1] 赵玉伟.WWW中缓存机制的应用研究[D].武汉:武汉理工大学,2006.

[2] Duane Wessels.Web Caching[M].United States of America:O'Reilly & Associates Inc,2001:1-6.

[3] 阎洁.Web应用若干关键技术的研究[D].武汉:武汉理工大学,2008:33-46

[4] opensymphony.What is OSCache[EB/OL].,2005.

[5] opensymphony.Tag Reference of OSCache[EB/OL].,2005.

[6] Object Renational Mapping-Persistence and Caching for Java[EB/OL]..2005.

上一篇:基于逻辑段划分算法统计的文本信息检索 下一篇:基于Web的实验室预约系统设计与实现