`

Hibernate EHCache

    博客分类:
  • Java
阅读更多

By default, Hibernate uses EHCache for JVM-level caching. (JCS support is now deprecated and will be removed in a future

version of Hibernate.) You may choose a different implementation by specifying the name of a class that implements

net.sf.hibernate.cache.CacheProvider using the property hibernate.cache.provider_class.

 

以上引用自:http://www.hibernate.org/hib_docs/reference/en/html/performance.html#performance-cache

 

EHCache支持read-only和read/write缓存,内存和磁盘缓存。是一个非常轻量级的缓存实现,而且从1.2 之后就支持了集群,目前的最新版本好像是2.0了。
集群时候推荐使用jboss-cache。

 

EHCache的使用场合:
1、比较少更新表数据
   EhCache一般要使用在比较少执行write操作的表(包括update,insert,delete等)[Hibernate的二级缓存也都是这样];
2、对并发要求不是很严格的情况
   两台机子中的缓存是不能实时同步的;

 

步骤:
1. 先下载ehcache的jar包。
   最新版本: ehcache-1.4 released。
   解压后,有几个文件:
   ehcache-1.4.0.jar:需要将它放置到WEB-INF/lib下
   ehcache-1.4.0-remote-debugger.jar:不要发布到工程中,是用来调试和监控你的cache状况的
   ehcache-1.4.0-sources.jar:源代码
   ehcache.xml:重要的配置文件,需要复制到classpath下 。

<?xml version="1.0" encoding="UTF-8"?> 
<ehcache> 
 <diskStore path="Java.io.tmpdir"/>
 <defaultCache maxElementsInMemory="10000" <!-- 缓存最大数目 --> 
  eternal="false" <!-- 缓存是否持久 --> 
  overflowToDisk="true" <!-- 当缓存中的数量超过限制时,是否持久化到硬盘 --> 
  timeToIdleSeconds="300" <!-- 当缓存闲置n秒后销毁 --> 
  timeToLiveSeconds="180" <!-- 当缓存存活n秒后销毁 --> 
  diskPersistent="false" 
  diskExpiryThreadIntervalSeconds="120"/> 
</ehcache>

 

2. 修改hbm.xml配置

<hibernate-mapping package="******">
 <class name="******" table="******">
  <!-- enable second level cache -->
  <cache usage="read-write"/>

  <id name="id">
   <generator class="native"/>
  </id>

  <property name="******" type="java.lang.Integer" not-null="true"/>
 </class> 
</hibernate-mapping>

 

3. 修改log4j和hibernate配置

 

# log4j.properties
log4j.logger.net.sf.hibernate=info
log4j.logger.net.sf.hibernate.cache=debug

# hibernate配置
hibernate.show_sql true

 

使用QueryCache缓存时加上如下配置,在程序中需要为Query对象设置Cachable属性:

hibernate.cache.use_query_cache true 

 

query.setCacheable(true);

 

另:Ehcache可以利用Terracotta方式同步缓存

参考:http://nlslzf.iteye.com/blog/563114

 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

关于网站首页的页面缓存

 

缓存策略:当用户第一次请求时,页面被缓存,再次访问时,过滤器进行过滤,不再执行action,从而降低服务器的压力并提高客户端响应速度。

如设置缓存存活时间为2分钟,将如下配置加入到ehcache.xml中:

<cache name="simplePageCachingFilter"
 maxElementsInMemory="10"
 maxElementsOnDisk="10"
 eternal="false"
 overflowToDisk="true"
 diskSpoolBufferSizeMB="20"
 timeToIdleSeconds="60"
 timeToLiveSeconds="120" />

 

simplePageCachingFilter 缓存的名称
maxElementsInMemory 缓存中元素的最大数量
maxElementsOnDisk 持久化到硬盘的缓存元素的最大数量
eternal="false" 缓存会被清除
overflowToDisk="true" 当缓存中元素数量超过限制时,将这些元素持久化到硬盘,为false时,设置没意义。
timeToIdleSeconds 多长时间不访问缓存,那么就清除该缓存
timeToLiveSeconds 缓存的存活时间


对应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>*index.do</url-pattern> 
</filter-mapping>

 

 新增附件:缓存技术浅谈.ppt.zip(Robin)

分享到:
评论
1 楼 daijiejun 2011-03-29  
我是你的code迷 !

相关推荐

    Spring boot hibernate ehcache maven 整合源码

    在Spring Boot的基础上,我们常常会整合其他技术,如Hibernate和Ehcache,来构建高效的数据存储和缓存解决方案。Maven作为Java项目的构建工具,负责管理项目的依赖关系。在这个源码包中,我们将探讨如何将这些组件...

    Hibernate EhCache 二级缓存配置.docx

    Hibernate EhCache 二级缓存配置 Hibernate EhCache 二级缓存配置是 Hibernate 框架中的一种缓存机制,它可以提高应用程序的性能和效率。下面是关于 Hibernate EhCache 二级缓存配置的详细知识点: 一、简介 ...

    hibernate+ehcache

    【标题】:“Hibernate + Ehcache 整合使用详解” 【描述】:“Hibernate 是一款流行的 Java 持久层框架,而 Ehcache 是一个高效的分布式内存缓存系统。将两者结合,能够极大地提升应用的性能,减少数据库的负载,...

    spring struts2 hibernate ehcache整合

    在IT行业中,Spring、Struts2和Hibernate是Java企业级应用开发中常见的三大框架,而Ehcache则是一个广泛使用的缓存解决方案。这篇博客“spring struts2 hibernate ehcache整合”显然探讨了如何将这四个组件集成到同...

    spring,spring mvc,hibernate,ehcache JavaWeb后台框架

    在Java Web开发领域,Spring、Spring MVC、Hibernate和Ehcache是四个非常关键的框架,它们共同构建了一个强大且高效的后台开发环境。下面将详细解释这些框架的核心功能和使用方式。 1. **Spring框架**:Spring是...

    hibernate+ehcache jar包

    《深入理解Hibernate与Ehcache整合机制》 在Java企业级开发中,数据持久化是不可或缺的一环,而Hibernate作为一款强大的ORM(对象关系映射)框架,极大地简化了数据库操作。然而,随着应用程序规模的扩大,数据量的...

    hibernate缓存ehcache用法

    这篇博客文章“hibernate缓存ehcache用法”可能详细介绍了如何在Hibernate中配置和使用Ehcache。 首先,我们需要理解什么是缓存。缓存是一种存储技术,用于临时保存经常访问的数据,以减少对主存储器(如数据库)的...

    hibernate整合ehcache的jar包.zip

    当Hibernate与Ehcache整合时,能够实现数据的快速访问,减少对数据库的直接访问,从而提高系统的响应速度。 **1. Hibernate概述** Hibernate是Java开发中的一个关键工具,它提供了一种在Java应用和关系型数据库之间...

    Hibernate + EhCache 实现数据缓存的处理

    总结起来,本文介绍了如何结合Hibernate和EhCache实现数据缓存,涉及了Hibernate配置、EhCache配置、实体类缓存注解以及缓存功能的测试。理解并实践这些知识点,有助于开发出更高效、响应更快的Java应用。

    hibernate-ehcache-4.1.4.Final.zip

    【标题】"hibernate-ehcache-4.1.4.Final.zip" 提供的是Hibernate ORM框架的一个版本,其中集成了Ehcache作为二级缓存解决方案。Hibernate是一个流行的Java对象关系映射(ORM)工具,它允许开发人员将数据库操作转化...

    spring、 spring mvc、 hibernate、 ehcache Java后台框架

    在Java后台开发中,Spring、Spring MVC、Hibernate和Ehcache是四个非常关键的框架,它们各自承担着不同的职责并协同工作,构建出高效、稳定且可扩展的应用系统。 Spring框架是Java企业级应用的核心框架,它提供了一...

    spring+springmvc+hibernate+ehcache JavaWeb后台框架

    spring+springmvc+hibernate+ehcache JavaWeb后台框架,不仅提高了开发程序的速度,且其中还是用到hibernate和ehcache缓存的使用,加快了程序运行的数据,该框架亲测好用。值得注意的是该种框架现在还算是用的比较多...

    spring,spring mvc,hibernate,ehcache Java后台框架

    Spring,Spring MVC,Hibernate,以及Ehcache是Java开发中常用的四大框架,它们共同构建了高效、稳定的后台应用体系。 Spring框架是Java企业级应用的事实标准,它提供了一个全面的编程和配置模型,用于简化企业级...

    hibernate-ehcache-4.3.9.Final.jar

    该包是hibernate中所用的一个包,专门用来去处理特定的问题,它是和ehcache一起用的一个包

    Spring+Hibernate+ehcache整合

    Spring、Hibernate和Ehcache是Java开发中常用的三个框架,它们在企业级应用开发中扮演着重要的角色。Spring是一个全面的后端应用框架,提供依赖注入、AOP(面向切面编程)、MVC(模型-视图-控制器)等特性;...

    spring3 hibernate4 ehcache实例

    【Spring3 Hibernate4 Ehcache整合实例详解】 在Java企业级应用开发中,Spring、Hibernate和Ehcache是三个非常重要的框架和技术。Spring作为轻量级的IoC(Inversion of Control)和AOP(Aspect Oriented ...

    hibernate-ehcache-4.1.0.Final.jar

    hibernate-ehcache-4.1.0.Final.jar 是hibernate4.1使用缓存的jar包

    hibernate所需的ehcache的相关jar包,一共3个jar包

    为了在Hibernate中启用Ehcache,开发者需要在Hibernate的配置文件(如hibernate.cfg.xml)中指定Ehcache作为二级缓存提供者,并配置相关的缓存策略。同时,还需要在项目的类路径下包含这些jar包,以确保运行时能够...

    Hibernate4 + Ehcache 例子

    标题 "Hibernate4 + Ehcache 例子" 暗示了我们将探讨如何在Java应用程序中集成Hibernate4 ORM框架和Ehcache缓存系统。这个例子可能是关于如何提高数据访问性能,通过缓存策略来减少数据库查询的次数。 描述中的链接...

    Struts2+Spring+Hibernate+Ehcache+AJAX+JQuery+Oracle 框架集成用户登录注册Demo工程

    6.Hibernate继承 HibernateDaoSupport。 7.Spring+Junit4单元测试,优点:不会破坏数据库现场,等等。 2)Demo 导入说明: 1.Eclipse Encoding:GBK 2.Eclipse 导入后可能需要在 Xml Catalog 手动添加:ehcache-...

Global site tag (gtag.js) - Google Analytics