`
jxh118
  • 浏览: 125256 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

EhCache构建Hibernate二级缓存

阅读更多

1、首先设置EhCache,建立配置文件ehcache.XML,默认的位置在class-path,可以放到你的src目录下:

<?xml version="1.0" encoding="UTF-8"?>
<ehcache>
       <diskStore path="java.io.tmpdir" />
       <cache name="cache1"
            maxElementsInMemory="10000"<!-- 缓存最大数目 -->
          eternal="false"                      <!-- 缓存是否持久 -->
         overflowToDisk="true" <!-- 是否保存到磁盘,当系统当机时-->  
         timeToIdleSeconds="300"  <!-- 当缓存闲置n秒后销毁 -->
         timeToLiveSeconds="500"  <!-- 当缓存存活n秒后销毁-->
     memoryStoreEvictionPolicy="LRU"  <!-- 最近最少使用策略-->
      />
		
</ehcache>

 2、在Hibernate配置文件中设置:

 <prop key="hibernate.show_sql">true</prop>
    <prop key="hibernate.jdbc.batch_size">100</prop>
    <prop key="hibernate.jdbc.fetch_size">50</prop>
    <prop key="hibernate.cache.use_second_level_cache">
     true
    </prop>
    <prop key="hibernate.cache.use_query_cache">true</prop>
    <prop key="hibernate.cache.provider_class">
     org.hibernate.cache.EhCacheProvider
    </prop>
    <prop key="net.sf.ehcache.configurationResourceName">
     classpath:ehcache.xml
    </prop>

  3、在Hbm文件中<class>首行下添加 

  <cache usage="read-only" region="cache1"/>

 4使用spring模板时加

<bean id="hibernateTemplate" 
class="org.springframework.orm.hibernate3.HibernateTemplate"> 
<property name="sessionFactory"> 
<ref bean="sessionFactory" /> 
</property> 
<property name="cacheQueries"> 
<value>true</value> 
</property> 
</bean> 

 

如果不设置“查询缓存”,那么hibernate只会缓存使用load()方法获得的单个持久化对象,如果想缓存使用findall()、list()、Iterator()、createCriteria()、createQuery()等方法获得的数据结果集的话,就需要设置
hibernate.cache.use_query_cache true 才行
<prop key="hibernate.cache.use_query_cache">true</prop>

ehcache不支持transactional,其他三种可以支持。
read-only:无需修改, 那么就可以对其进行只读 缓存,注意,在此策略下,如果直接修改数据库,即使能够看到前台显示效果,但是将对象修改至cache中会报error,cache不会发生作用。另:删除记录会报错,因为不能在read-only模式的对象从cache中删除。
read-write:需要更新数据,那么使用读/写缓存 比较合适,前提:数据库不可以为serializable transaction isolation level(序列化事务隔离级别)
nonstrict-read-write:只偶尔需要更新数据(也就是说,两个事务同时更新同一记录的情况很不常见),也不需要十分严格的事务隔离,那么比较适合使用非严格读/写缓存策略。

  

分享到:
评论

相关推荐

    springmvc4+spring4+hibernate5.1.3+二级缓存ehcache+fastjson配置

    Ehcache是Hibernate的一个可选二级缓存插件,用于存储数据库查询结果,减少对数据库的直接访问。当相同的数据再次被请求时,可以从缓存中快速获取,提高系统响应速度。在不使用缓存的情况下,可以通过配置关闭。 5...

    Hibernate二级缓存(Ehcache)

    【标题】:“Hibernate二级缓存(Ehcache)” 【正文】: Hibernate是一个流行的Java对象关系映射(ORM)框架,它允许开发者用面向对象的方式来处理数据库操作。然而,随着应用规模的扩大,性能优化变得至关重要,...

    hibernate一级缓存、二级缓存和查询缓存

    Hibernate的一级缓存、二级缓存和查询缓存共同构建了一个层次化的缓存体系,有效地缓解了数据库的压力,提升了应用的运行效率。理解并掌握这些缓存机制,对于优化Hibernate应用至关重要。在实践中,合理配置和管理...

    springboot+jpa(hibernate配置redis为二级缓存) springboot2.1.4

    通过以上步骤,我们就成功地在Spring Boot 2.1.4.RELEASE项目中配置了使用Redis作为Hibernate二级缓存的环境。这将显著提升数据库查询效率,减少对数据库的压力,尤其在高并发场景下,效果尤为明显。记得在实际生产...

    hibernate二级缓存要导入的包

    本压缩包提供的资源应该包含了实现Hibernate二级缓存所需的关键组件和库文件。 一级缓存是Hibernate Session内的缓存,它是每个Session实例独有的,当Session关闭时,一级缓存中的数据也会被清除。而二级缓存则是一...

    hibernate二级缓存 SSH

    在这个项目中,"hibernate二级缓存 SSH" 的标题表明我们将探讨如何在SSH框架中实现Hibernate的二级缓存功能。Hibernate二级缓存是一个优化策略,它能提高数据访问性能,减少对数据库的直接访问。 首先,Struts2作为...

    hibernate+ehcache

    一级缓存是每个 Hibernate Session 的私有缓存,而二级缓存则可以跨 Session 共享,Ehcache 就是常见的二级缓存实现。 7. **事务管理**:在整合 Hibernate 和 Ehcache 时,必须注意事务管理,确保缓存与数据库的...

    hibernate二级缓存相关插件(EHcache)

    **一、Hibernate二级缓存** 二级缓存是Hibernate中的一个可选特性,用于存储那些频繁访问但不经常变化的数据。与一级缓存相比,二级缓存的大小更大,且可以跨进程或跨服务器共享。这样,当多个用户同时请求相同数据...

    Hibernate二级缓存+分页功能

    Hibernate二级缓存通过插件实现,其中Ehcache是最常用的二级缓存实现。 二级缓存的配置主要包括以下步骤: 1. 引入Ehcache依赖。 2. 配置hibernate.cfg.xml,启用二级缓存并指定Ehcache配置文件。 3. 在实体类上...

    hibernate5.1二级缓存包

    1. **引入依赖**:首先需要在项目的 Maven 或者 Gradle 构建文件中添加相应的二级缓存库依赖,如 Ehcache 或 Infinispan。 2. **配置**:在 Hibernate 的配置文件(如 hibernate.cfg.xml)中启用二级缓存,并指定...

    Ehcache二级缓存.zip

    Ehcache二级缓存允许将一级缓存中的数据溢出到二级缓存,当一级缓存空间不足或者数据被移除时,可以从二级缓存中恢复。这不仅扩展了缓存容量,还确保了数据的持久性。 2. **POM文件**:在描述中提到的"POM"是Maven...

    hibernate4配置二级缓存

    Ehcache是Hibernate常用的二级缓存提供商,它是一款开源、高性能、轻量级的缓存解决方案。 配置Hibernate4的二级缓存主要涉及以下几个步骤: 1. **引入依赖**:首先,你需要在项目的pom.xml或build.gradle文件中...

    47-二级缓存 Hibernate-Shiro-MyBatis

    **Hibernate二级缓存** Hibernate是Java开发中的一个流行对象关系映射框架,它提供了一级缓存和二级缓存。一级缓存是每个Session内的缓存,而二级缓存则可以在多个Session之间共享。Hibernate的二级缓存主要通过插件...

    Ehcache缓存

    总之,Ehcache作为Hibernate的二级缓存,能够显著提升数据访问效率,减少数据库负载。通过合理的配置和使用,开发者可以构建出高效、稳定的Java应用。在实际项目中,根据业务场景选择合适的缓存策略,优化缓存区域,...

    第29讲--为Spring集成的Hibernate配置二级缓存

    总结来说,为Spring集成的Hibernate配置二级缓存涉及到引入缓存提供者依赖、修改Hibernate和Spring配置文件、在实体类上添加缓存注解以及配置Ehcache的详细设置。通过这些步骤,我们可以有效地提高数据访问效率,...

    二级缓存配置

    ### 二级缓存配置 ...通过对Hibernate二级缓存的详细配置与理解,我们可以更好地利用这一功能来优化系统的性能。合理地选择缓存策略,并结合实际应用场景进行调整,将有助于构建出高效稳定的软件系统。

    hibernate以及连接池

    1. EhCache:EhCache是Hibernate默认的二级缓存提供商,支持本地内存缓存和分布式缓存,可配置缓存策略,如定时刷新、大小限制等。 2. Guava Cache:Google的Guava库提供了缓存功能,可以集成到Hibernate中作为二级...

    在Spring+Hibernate集成环境中使用EhCache缓存

    然后,我们需要在Hibernate的配置中启用二级缓存,并指定使用EhCache。在`hibernate.cfg.xml`文件中添加以下配置: ```xml &lt;property name="hibernate.cache.use_second_level_cache"&gt;true &lt;property name="...

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

    - 第二级缓存:SessionFactory实例间的共享缓存,跨Session存储数据,提高多个并发请求的效率。 4. **缓存更新与失效** - 更新策略:当数据发生变化时,需要同步更新缓存,可以使用`@CacheEvict`注解实现缓存的...

Global site tag (gtag.js) - Google Analytics