Ehcach SimplePageCachingFilter 页面缓存
作者:韩飞
日期:2008/11/19
为了能将学过的东西归纳总结,开始试验着写一些文档,看过张荣华的文章后,参考着写一下
如果一个应用中的80%的时间在访问20%的数据时,那么这时候就应该考虑使用缓存了。在一个网站中访问最多的可能就是首页了,我们可以考虑给首页做一个页面缓存。主页的缓存策略应该是在一个固定时间内不变的,比如说2分钟更新一次,那么这个缓存应该做在什么地方呢?
假设你的应用结构是page—filter—action—service—dao—db,这个过程中的每个地方都一个做缓存,根据页面缓存的特征,应该把页面缓存做在尽量靠近客户端的地方,就是page和filter之间。这样的优点就是在用户第一次请求之后,页面被缓存,第二个用户再来请求时,走到filter这个请求就结束了。无需在走后面的action—service—dao—db,这样就减轻了服务器的压力,客户端的页面响应速度也加快
下面用ehcache来做到这一点
在应用的classes的根目录中放入ehcache.xml
加入下面的配置片段:
<cache name="SimplePageCachingFilter"
maxElementsInMemory="10"
maxElementsOnDisk="10"
eternal="false"
overflowToDisk="true"
diskSpoolBufferSizeMB="20"
timeToIdleSeconds="10"
timeToLiveSeconds="10"
memoryStoreEvictionPolicy="LFU"
/>
SimplePageCachingFilter 是缓存的名字
maxElementsInMemory 表示内存中SimplePageCachingFilter缓存中元素的最大数量是10
maxElementsOnDisk 是指持久化的该缓存元素的硬盘是的最大数量
eternal=false 意味着该缓存会死亡
overflowToDisk=true 意味着该缓存中的元素超过限制是,就把这些元素持化到硬盘上,如果orerflowToDisk=false那么maxElementsOnDisk的设置就没有意义了
timeToIdleSeconds 多长时间不访问该缓存,那么ehcache就会清除改缓存
timeToLiveSeconds 缓存的存活时间,从开始创建的时间算起
memoryStoreEvictionPolicy=LFU
1 FIFO ,first in first out ,这个是大家最熟的,先进先出,不多讲了
2 LFU , Less Frequently Used ,就是上面例子中使用的策略,直白一点就是讲一直以来最少被使用的。如上面所讲,缓存的元素有一个hit 属性,hit 值最小的将会被清出缓存。
3 LRU ,Least Recently Used ,最近最少使用的,缓存的元素有一个时间戳,当缓存容量满了,而又需要腾出地方来缓存新的元素的时候,那么现有缓存元素中时间戳离当前时间最远的元素将被清出缓存。
配置SimplePageCachingFilter 在web.xml中加入
< filter >
< filter-name > indexCacheFilter <filter-name >
< filter-class > net.sf.ehcache.constructs.web.filter.SimplePageCachingFilter
<filter-class >
<filter >
< filter-mapping >
< filter-name > indexCacheFilter< filter-name >
< url-pattern > *.do <url-pattern >
<filter-mapping >
好了,如果你的页面正好也需要用到页面缓存,不防可以考虑一下ehcache ,因为它实在是非常简单,而且易用。
ehcache 是一个非常轻量级的缓存实现,而且从1.2 之后就支持了集群,目前的最新版本是1.3 ,而且是hibernate 默认的缓存provider 。虽然本文是介绍的是ehcache 对页面缓存的支持,但是ehcache 的功能远不止如此,当然要使用好缓存,对JEE 中缓存的原理,使用范围,适用场景等等都需要有比较深刻的理解,这样才能用好缓存,用对缓存。
分享到:
相关推荐
在ASP.NET开发中,页面缓存是提升网站性能的关键技术之一。它允许我们将频繁访问的网页数据存储在服务器的内存中,以便后续请求时能够快速响应,减少对数据库的访问和处理时间。C#作为ASP.NET的主要编程语言,提供了...
使用 Redis 实现页面缓存 本文档主要介绍了使用 Redis 实现页面缓存的方法,包括缓存 key 的设计、缓存实现的思路和代码实现。 页面缓存的目的:页面缓存的主要目的是为了提高网站的访问速度和用户体验。通过将...
页面缓存处理是提高Web应用性能的关键策略,它能够减少服务器压力,加快用户访问速度。本文档主要讨论了如何处理页面缓存,确保前端逻辑和资源更新后立即生效,无需额外操作。 首先,我们来看前端处理方案。在HTML...
ehcache页面缓存技术ehcache页面缓存技术ehcache页面缓存技术ehcache页面缓存技术ehcache页面缓存技术ehcache页面缓存技术ehcache页面缓存技术ehcache页面缓存技术ehcache页面缓存技术ehcache页面缓存技术ehcache...
在Web开发中,页面缓存是一个重要的概念,它涉及到用户浏览网页时的性能优化和更新体验。当浏览器加载一个网页后,为了加快后续访问速度,会将页面的静态资源(如HTML、CSS、JavaScript文件、图片等)存储在本地缓存...
SpringMVC和Ehcache的结合使用,能够构建一个高效、灵活的多级缓存系统,其中包括页面缓存。下面将详细介绍SpringMVC与Ehcache集成后的各级缓存机制以及页面缓存的实现。 1. SpringMVC简介: SpringMVC是Spring框架...
### JSP 页面缓存及其清除方法详解 #### 一、JSP页面缓存的重要性与应用场景 JSP(Java Server Pages)技术是一种结合了HTML、XML和Java编程的技术,用于创建动态网页。在JSP开发中,页面缓存是一种常用的技术手段...
### 设置页面缓存Cache #### 知识点一:页面缓存的概念与作用 页面缓存(Page Caching)是Web开发中一种重要的优化技术,主要用于提高网站性能和响应速度。通过将页面的HTML输出存储在服务器端的缓存中,当用户...
Http 页面缓存机制 Http 页面缓存机制是 Web 2.0 应用程序中性能改善的关键要素之一。浏览器端缓存机制可以显著地改善用户体验,减少浏览器端性能问题。浏览器缓存机制可以分为两类:服务器端缓存和浏览器端缓存。...
页面缓存是优化Web应用程序性能的关键技术之一,它通过存储常用的网页或数据在服务器的内存中,减少对数据库的访问,从而大大提高响应速度。在这个小测试中,我们将探讨页面缓存的基本概念,以及如何利用开源工具...
LRU(Least Recently Used)页面缓存是一种常用的内存管理策略,尤其在计算机系统和数据库管理系统中,用于优化数据访问效率。LRU的基本思想是:当内存空间有限时,最近最少使用的数据应该首先被淘汰。在磁盘环境下...
在PHP编程中,缓存是一种优化网站性能的重要技术,它能减少服务器的负载,提高页面加载速度,尤其在处理大量数据库查询或者复杂计算时效果显著。本篇文章将深入探讨PHP中的文件缓存类,以及如何利用它来实现高效的...
在IT行业中,尤其是在Web开发领域,页面缓存是一种优化网站性能的重要技术。当我们谈论"jsp 页面缓存"时,我们指的是在JSP(JavaServer Pages)应用中利用缓存策略来提升网页加载速度和减少服务器负载。JSP是Java...
- `public`: 允许所有缓存(包括浏览器和中间服务器)缓存页面。 - `no-store`: 阻止任何缓存存储页面数据。 - `must-revalidate`: 每次请求都要求服务器确认缓存内容是否过期。 3. **Last-Modified**: 这个头...
但是,在某些情况下,为了确保用户看到的是最新的数据或页面状态,我们需要禁用页面缓存。本文将详细介绍如何通过PHP代码来实现页面缓存的禁止。 #### 一、基本概念 1. **缓存**:缓存是指存储最近或频繁访问的...
**基于OSCache的页面缓存技术详解** 在Web应用程序中,页面缓存是一种常见的优化策略,它可以显著提高网站性能,减少服务器压力,并提供更快的用户体验。OSCache是Apache软件基金会的开源项目,它是一个高性能、...
在实际应用中,Ehcache的页面缓存通常集成在Web应用的过滤器(Filter)中,例如`SimplePageCachingFilter`。当请求到达时,过滤器会检查是否有缓存的页面,如果有,则直接返回,否则执行正常的请求处理流程,并在...
### Ehcache 整合Spring 使用页面、对象缓存 #### 一、Ehcache简介与特点 Ehcache是一款开源的、高性能的Java缓存框架,它可以用来存储、检索短期数据,以减轻数据库的压力,提高应用程序性能。Ehcache不仅支持...
在 Ruby on Rails 中,页面缓存是一种优化性能的技术,尤其适用于那些内容相对静态或者对用户个性化要求不高的网页。页面缓存的工作原理是将动态生成的 HTML 页面直接保存到服务器的文件系统中,后续的相同请求可以...