`
hanfei1230
  • 浏览: 3776 次
  • 来自: ...
文章分类
社区版块
存档分类
最新评论

ehcach SimplePageCachingFilter 页面缓存

    博客分类:
  • Java
阅读更多

Ehcach     SimplePageCachingFilter 页面缓存

作者:韩飞

日期:2008/11/19

       为了能将学过的东西归纳总结,开始试验着写一些文档,看过张荣华的文章后,参考着写一下

       如果一个应用中的80%的时间在访问20%的数据时,那么这时候就应该考虑使用缓存了。在一个网站中访问最多的可能就是首页了,我们可以考虑给首页做一个页面缓存。主页的缓存策略应该是在一个固定时间内不变的,比如说2分钟更新一次,那么这个缓存应该做在什么地方呢?

       假设你的应用结构是page—filter—action—service—dao—db,这个过程中的每个地方都一个做缓存,根据页面缓存的特征,应该把页面缓存做在尽量靠近客户端的地方,就是pagefilter之间。这样的优点就是在用户第一次请求之后,页面被缓存,第二个用户再来请求时,走到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页面缓存html使用redis实现页面缓存.docx

    使用 Redis 实现页面缓存 本文档主要介绍了使用 Redis 实现页面缓存的方法,包括缓存 key 的设计、缓存实现的思路和代码实现。 页面缓存的目的:页面缓存的主要目的是为了提高网站的访问速度和用户体验。通过将...

    页面缓存处理方案文档,解决前后端页面缓存

    页面缓存处理是提高Web应用性能的关键策略,它能够减少服务器压力,加快用户访问速度。本文档主要讨论了如何处理页面缓存,确保前端逻辑和资源更新后立即生效,无需额外操作。 首先,我们来看前端处理方案。在HTML...

    ehcache页面缓存技术

    ehcache页面缓存技术ehcache页面缓存技术ehcache页面缓存技术ehcache页面缓存技术ehcache页面缓存技术ehcache页面缓存技术ehcache页面缓存技术ehcache页面缓存技术ehcache页面缓存技术ehcache页面缓存技术ehcache...

    web项目页面缓存清除,不用每次刷新浏览器

    在Web开发中,页面缓存是一个重要的概念,它涉及到用户浏览网页时的性能优化和更新体验。当浏览器加载一个网页后,为了加快后续访问速度,会将页面的静态资源(如HTML、CSS、JavaScript文件、图片等)存储在本地缓存...

    springMVC+Ehcache的各级缓存(包括页面缓存)

    SpringMVC和Ehcache的结合使用,能够构建一个高效、灵活的多级缓存系统,其中包括页面缓存。下面将详细介绍SpringMVC与Ehcache集成后的各级缓存机制以及页面缓存的实现。 1. SpringMVC简介: SpringMVC是Spring框架...

    JSP 页面缓存以及清除缓存

    ### JSP 页面缓存及其清除方法详解 #### 一、JSP页面缓存的重要性与应用场景 JSP(Java Server Pages)技术是一种结合了HTML、XML和Java编程的技术,用于创建动态网页。在JSP开发中,页面缓存是一种常用的技术手段...

    ASP_NET中Web页面缓存技术探讨

    ### ASP.NET中的Web页面缓存技术探讨 #### 引言 在现代Web开发中,缓存技术对于提高网站性能和用户体验至关重要。ASP.NET作为一种广泛使用的Web开发框架,提供了丰富的缓存选项来帮助开发者优化应用程序的运行效率...

    设置页面缓存Cache

    ### 设置页面缓存Cache #### 知识点一:页面缓存的概念与作用 页面缓存(Page Caching)是Web开发中一种重要的优化技术,主要用于提高网站性能和响应速度。通过将页面的HTML输出存储在服务器端的缓存中,当用户...

    Http页面缓存机制

    Http 页面缓存机制 Http 页面缓存机制是 Web 2.0 应用程序中性能改善的关键要素之一。浏览器端缓存机制可以显著地改善用户体验,减少浏览器端性能问题。浏览器缓存机制可以分为两类:服务器端缓存和浏览器端缓存。...

    页面缓存的小测试

    页面缓存是优化Web应用程序性能的关键技术之一,它通过存储常用的网页或数据在服务器的内存中,减少对数据库的访问,从而大大提高响应速度。在这个小测试中,我们将探讨页面缓存的基本概念,以及如何利用开源工具...

    LRU页面缓存-磁盘

    LRU(Least Recently Used)页面缓存是一种常用的内存管理策略,尤其在计算机系统和数据库管理系统中,用于优化数据访问效率。LRU的基本思想是:当内存空间有限时,最近最少使用的数据应该首先被淘汰。在磁盘环境下...

    php文件页面缓存类.zip

    在PHP编程中,缓存是一种优化网站性能的重要技术,它能减少服务器的负载,提高页面加载速度,尤其在处理大量数据库查询或者复杂计算时效果显著。本篇文章将深入探讨PHP中的文件缓存类,以及如何利用它来实现高效的...

    jsp 页面缓存

    在IT行业中,尤其是在Web开发领域,页面缓存是一种优化网站性能的重要技术。当我们谈论"jsp 页面缓存"时,我们指的是在JSP(JavaServer Pages)应用中利用缓存策略来提升网页加载速度和减少服务器负载。JSP是Java...

    页面的缓存与不缓存设置及html页面中meta的作用

    - `public`: 允许所有缓存(包括浏览器和中间服务器)缓存页面。 - `no-store`: 阻止任何缓存存储页面数据。 - `must-revalidate`: 每次请求都要求服务器确认缓存内容是否过期。 3. **Last-Modified**: 这个头...

    PHP禁止缓存如何禁止页面缓存

    但是,在某些情况下,为了确保用户看到的是最新的数据或页面状态,我们需要禁用页面缓存。本文将详细介绍如何通过PHP代码来实现页面缓存的禁止。 #### 一、基本概念 1. **缓存**:缓存是指存储最近或频繁访问的...

    基于OSCache的页面缓存(收藏)

    **基于OSCache的页面缓存技术详解** 在Web应用程序中,页面缓存是一种常见的优化策略,它可以显著提高网站性能,减少服务器压力,并提供更快的用户体验。OSCache是Apache软件基金会的开源项目,它是一个高性能、...

    Ehcache页面缓存的使用.doc

    在实际应用中,Ehcache的页面缓存通常集成在Web应用的过滤器(Filter)中,例如`SimplePageCachingFilter`。当请求到达时,过滤器会检查是否有缓存的页面,如果有,则直接返回,否则执行正常的请求处理流程,并在...

    Ehcache 整合Spring 使用页面、对象缓存

    ### Ehcache 整合Spring 使用页面、对象缓存 #### 一、Ehcache简介与特点 Ehcache是一款开源的、高性能的Java缓存框架,它可以用来存储、检索短期数据,以减轻数据库的压力,提高应用程序性能。Ehcache不仅支持...

Global site tag (gtag.js) - Google Analytics