网站大量收购闲置独家精品文档,联系QQ:2885784924

JAVAWEB缓存技术.doc

  1. 1、本文档共44页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
JAVAWEB缓存技术

JAVAWeb应用缓存技术资料收集与总结 ——作者:夏俊 时间:2011-1-2 WEB用户行为分析系统上线,在测试某些功能时候,发现部分功能响应时间过长,比如对起点文学的按月的统计数据显示,响应时间超过了3秒,这个不太符合用户的需要,那么接下来就是优化系统,提高系统速度的工作。我们在分析响应速度缓慢的原因,发现还是数据库处理数据这块原因,究其根本还是数据量过大的原因,而且在数据库层面已经速度这块很难再有提升,因此考虑到web的缓存技术,这些响应速度缓慢的功能基本都是按周,按月的统计数据,因此在单位时间内的缓存是完全可以实现,以下就是我收集的java web缓存的相关技术,有两个技术重点推荐,一个是OSCache,一个是JCS,这两个是缓存技术里应用最为广泛的,也是最为成熟并且是开源的技术。 下面是我推荐这两种技术的原因,如下: 都是开源的JAVA程序 网上能找到比较丰富的资料 都支持分布式的系统 操作部署都不太难 均符合我们现在系统开发的需要 OSCACHE和JCS区别在哪里了?现在我都只是简单看了下,现在总结还不全面,等具体操作后会加以补充: OSCache我找到的资料,我感觉主要是是页面级的缓存,他的缓存开发代码基本都是在页面里,用标签定义,应该数据都是缓存在客户端(这点还要细细体味) JCS是服务端的缓存,他基本是将需要缓存的数据先存在服务器的内存或是硬盘里,在一定时间内用户可以不通过数据库这个线路获取数据,而是从服务器直接获取,但这样会不会服务端负荷过大 从以上区别来说,如果数据能在客户端缓存,我还是更加推荐点,但是客户端如果缓存,用户要是有什么原因经常清理客户端缓存也是个问题。 最后这几种缓存技术和我们现在系统的整合的问题,这个我还要接着找下数据,我们系统是struts2+jquery(service和DAO层,这个缓存应该不会牵涉到),JCS是服务端缓存,所以数据返回可以在action里封装,对于前台而言影响不大,至于OSCache,如果使用它那么系统该如何改造,这个我要考虑下。 再有就是何时来缓存数据,就是触发缓存的方式,是用户的第一次在适当时间的点击还是通过调度的方式定时缓存了,这点也要考虑下。 写以上内容发现自己刚才对OSCache没有理解太清楚,OSCache缓存是使用标签的,在标签里的内容就会按时间缓存。因此实际操作下是很重要的。 第一份资料—JCS Java 缓存系统(Java Caching System,JCS) 资料编号NO101 JCS概述:JCS 是一个用 Java 语言编写的缓存系统,可以使用它来创建 Java 桌面和 Web 应用程序。它提供了在缓存器中存储数据、从缓存器中删除数据等方便机制。使用 JCS 可以在各种指定的数据区域 中存储缓存数据。JCS 定义了 4 种类型的核心区域:内存区域、磁盘区域、外围区域和远程区域。可以结合使用这些核心区域以在如何存储缓存数据、将缓存数据存储在什么地方等方面获得更大的灵活性。您可以指定首次使用哪个区域,以及发生故障时转移到哪个区域。 内存区域:内存区域是一个使用最近最少算法(Least Recently Used,LRU)的纯内存缓存区域。当内存缓存区域满时,LRU 会首先删除最近最少使用的缓存数据。这个数据区域执行良好,大多数 JCS 用户将它指定为最先使用的默认缓存区域。 磁盘区域:磁盘区域是在 Web 服务器的文件磁盘上缓存数据。为了提高性能,JCS 在文件磁盘上存储实际缓存数据的同时,会在内存中存储缓存数据键。在首先使用内存区域的典型 JCS 配置中,任何无法在内存区域中保存的数据都会写入磁盘区域中。 外围区域:外围区域提供一种可配置方式来在多台服务器之间分发缓存数据。缓存数据服务器必须有一个开放的用于侦听的端口,而且必须创建一个套接字连接。这个区域存在一个潜在问题,因为它不能保证各缓存之间的数据的一致性。但如果是按计划使用该区域,则不会出现这个问题。 远程区域:远程区域提供了一个使用远程方法调用(RMI)API 的缓存区域。这个区域使用一台远程服务器处理缓存数据。这台远程缓存服务器可以被多个 JCS 客户端应用程序用于存储缓存数据。一些侦听器被定义用于收集来自客户端和服务器的请求。这个缓存区域帮助减少串行化和多个连接点的开销。 (JCS 的可插入控制器:JCS 通过组合缓存器(Composite Cache)让使用多个区域进行缓存存储变得很简单。组合缓存器为缓存区域提供了一个可插入控制器。组合缓存器仔细处理复杂的任务,即确定何时以及如何使用每个缓存区域。JCS 将完成大部分复杂的工作,开发人员只需关心获取和设置缓存。) 夏俊备注:我看了下ibatis缓存机制,内存区域的缓存和磁盘缓存,ibatis也有

文档评论(0)

eanp35308 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档