基于hibernate的缓存机制

hibernate缓存:一级缓存,二级缓存(https://mp.csdn.net/mdeditor)
1.一级缓存:即session级别的缓存,亦即事务级别的缓存策略,这种缓存策略是Hibernate内置的,不可被拆卸的
2.二级缓存:即SessionFactory的外置缓存,其同时也称为进程级缓存或集群范围内的缓存。
hibernate的二级缓存是需要第三方支持的,hibernate默认的二级缓存插件为ehcache,由于二级缓存是进程级的可 能出现多线程并发问题,需要设置缓存的并发策略。
(hibernate二级缓存多应用在多读少写的实体对象中!)
使用hibernate注解方式使用二级缓存开发步骤
1、在src文件夹下添加ehcache.xml配置文件 ;

maxElementsInMemory="10000" eternal="false" timeToIdleSeconds="120" timeToLiveSeconds="120" overflowToDisk="true"

2.hibernate配置文件中,配置Ehcache相关属性(如果与spring整合,直接在spring的配置文件applicationContext.xml中添加)

         <!-- 使用二级缓存:false -->
        hibernate.cache.use_second_level_cache=true
   	    <!-- 启动查询缓存:false -->
   	        hibernate.cache.use_query_cache=true
    	    <!-- 二级缓存插件:org.hibernate.cache.EhCacheProvider -->
    	        hibernate.cache.provider_class=org.hibernate.cache.EhCacheProvider
    	    <!-- 是否收集有助于性能调节的统计数据:true -->
    	        hibernate.generate_statistics=true

3.引入相应jar包(如果还在手动添加jar包的,可以尝试使用maven)

  <dependency>
	  <groupId>org.hibernate</groupId>
	  <artifactId>hibernate-ehcache</artifactId>
	  <version>3.6.9.Final</version>
</dependency>  

( 这样就引入了hibernate-ehcache-3.6.9.jar及其依赖包ehcache-core-2.4.3.jar)
4.注解方式配置实体, 在实体上配置@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE) 并指定缓存 并发策略。
4.1:ehcache的四种缓存并发策略如下
(1)read-write(读写型):更新缓存的时候会锁定缓存中的数据
(2)nonstrict-read-write(非严格读写型):不锁定缓存中的数据
(3)read-only(只读型):适用从来不会被修改的数据(如参考数据)
(4)transactional:提供对全事务缓存机制的支持,比如JBoss TreeCache
扩展:java-web 常见的缓冲技术,使用缓存技术:对程序进行优化.

  • 缓存:其实就是内存中的一块空间.可以使用缓存将数据源中的数据拿到,存入到内存中.后期获得数据的话 从缓存中进行获得.
    减少与数据库的交互次数!
  • 常见缓存有以下几种常用
    (1)EHCache :是Hibernate常使用的二级缓存的插件.Ehcache – Java分布式缓存框架
    (2)Redis:

猜你喜欢

转载自blog.csdn.net/qq591009234/article/details/89177435