首页 > 其他分享 >Hibernate缓存机制

Hibernate缓存机制

时间:2023-04-30 17:37:28浏览次数:40  
标签:缓存 对象 cache 二级缓存 Hibernate hibernate org 机制


 
 
Hibernate缓存分类:





Hibernate的缓存范围






  事务范围的缓存只能被当前事务访问,每个事务都有各自的缓存,缓存内的数据通常采用相互关联的对象形式.缓存的生命周期依赖于事务的生命周期,只有当事务结束时,缓存的生命周期才会结束.事务范围的缓存使用内存作为存储介质,一级缓存就属于事务范围. 

  应用程序的缓存可以被应用范围内的所有事务共享访问.缓存的生命周期依赖于应用的生命周期,只有当应用结束时,缓存的生命周期才会结束.应用范围的缓存可以使用内存或硬盘作为存储介质,二级缓存就属于应用范围. 

  在集群环境中,缓存被一个机器或多个机器的进程共享,缓存中的数据被复制到集群环境中的每个进程节点,进程间通过远程通信来保证缓存中的数据的一致,缓存中的数据通常采用对象的松散数据形式. 



一级缓存的管理:

  evit(Object obj) 将指定的持久化对象从一级缓存中清除,释放对象所占用的内存资源,指定对象从持久化状态变为脱管状态,从而成为游离对象. 
  clear() 将一级缓存中的所有持久化对象清除,释放其占用的内存资源 
  contains(Object obj)  判断指定的对象是否存在于一级缓存中. 
  flush()  刷新一级缓存区的内容,使之与数据库数据保持同步. 

  二级缓存的管理:
  
   evict(Class arg0, Serializable arg1) 将某个类的指定ID的持久化对象从二级缓存中清除,释放对象所占用的资源. 
 

 


1. sessionFactory.evict(Customer.class, new Integer(1));



  

evict(Class arg0) 将指定类的所有持久化对象从二级缓存中清除,释放其占用的内存资源. 

 

    1. sessionFactory.evict(Customer.class);



      

    evictCollection(String arg0) 将指定类的所有持久化对象的指定集合从二级缓存中清除,释放其占用的内存资源. 

     

    1. sessionFactory.evictCollection("Customer.orders");




    Hibernate的二级缓存的配置




    不适合 加载到二级缓存中: 

    1.经常被修改的数据 


    2.绝对不允许出现并发访问的数据 


    3.与其他应用共享的数据 


    合适 加载到二级缓存中: 

    1.数据更新频率低 


    2.允许偶尔出现并发问题的非重要数据 


    3.不会被并发访问的数据 


    4.常量数据 


    5.不会被第三方修改的数据 

    org.hibernate.cache.EhCacheProvider 
     
     org.hibernate.cache.OSCacheProvider 
     
     org.hibernate.cache.SwarmCacheProvider 
     
     org.hibernate.cache.TreeCacheProvider



    org.hibernate.cache.EhCacheProvider true " quality="high" allowscriptaccess="always" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer"> 
        

    Hibernate缓存机制_缓存


    1. <</span>hibernate-configuration>  
    2.   <</span>session-factory>  
    3.        
    4.      <</span>property name="hibernate.cache.provider_class">  
    5.         org.hibernate.cache.EhCacheProvider  
    6.      </</span>property>  
    7.        
    8.      <</span>property name="hibernate.cache.use_query_cache">  
    9.         true  
    10.      </</span>property>  
    11.   </</span>session-factory>  
    12. </</span>hibernate-configuration>





    " quality="high" allowscriptaccess="always" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer">

    Hibernate缓存机制_缓存

    1. <</span>ehcache>  
    2.    
    3.  <</span>diskStore path="java.io.tmpdir"/>  
    4.    <</span>defaultCache maxElementsInMemory="10000" eternal="false"  timeToIdleSeconds="300" timeToLiveSeconds="600" overflowToDisk="true"/>  
    5. </</span>ehcache>





    " quality="high" allowscriptaccess="always" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer"> 
        
    
    


    标签:缓存,对象,cache,二级缓存,Hibernate,hibernate,org,机制
    From: https://blog.51cto.com/u_548275/6237904

    相关文章

    • HTTPS 研究机制
      HTTPS存在不同于HTTP的默认端口,HTTP默认端口是80或8080,HTTPS默认端口是443或者8443。HTTPS有一个加密/身份验证层(在HTTP与TCP之间),这个系统的最初研发由网景公司进行,提供了身份验证与加密通讯(数据传输)方法,现在它被广泛用于万维网上安全敏感的通讯,例如交易支付方面。HTTPS和HTTP的......
    • 手写web框架--了解web运行机制。
      第一步--写一个服务端importsocketserver=socket.socket()#默认就是TCP协议server.bind(('127.0.0.1',8080))server.listen(5)whileTrue:conn,addr=server.accept()#三次四次挥手data=conn.recv(1024)#接收消息print(data)conn.se......
    • 记一次nginx配置不当引发的499与failover 机制失效
      背景nginx499在服务端推送流量高峰期长期以来都是存在的,间或还能达到告警阈值触发一小波告警,但主观上一直认为499是客户端主动断开,可能和推送高峰期的用户打开推送后很快杀死app有关,没有进一步探究问题根源。然而近期在非高峰期也存在499超过告警阈值的偶发情况,多的时候一天几......
    • Hibernate ehcache配置二级缓…
      Cache简介:  )是计算机领域非常通用的概念。它介于应用程序和永久性数据存储源(如硬盘上的文件或者数据库)之间,其作用是降低应用程序直接读写永久性数据存储源的频率,从而提高应用的运行性能。缓存中的数据是数据存储源中数据的拷贝,应用程序在运行时直接读写缓存中的数据,只在某些特......
    • B/S结构系统的会话机制(session)
      B/S结构系统的会话机制(session)目录B/S结构系统的会话机制(session)每博一文案1.session会话机制的概述2.什么是session的会话3.session的作用4.session的实现原理解释5.补充:Cookie禁用了,session还能找到吗?6.总结一下到目前位置我们所了解的域对象:7.oa项目的优......
    • Django笔记三十三之缓存操作
      本文首发于公众号:Hunter后端原文链接:Django笔记三十三之缓存操作这一节介绍一下如何在Django中使用redis做缓存操作。在Django中可以有很多种方式做缓存,比如数据库,比如服务器文件,或者内存,这里介绍用的比较多的使用redis作为缓存。这篇笔记主要内容如下:依赖安装se......
    • 14 进程的等待与唤醒机制
      进程的等待结构:kwlst_t结构用于挂载等待的进程;经常被包含在信号量等结构,是用于保护访问受限的贡献资源;进程等待:krlsched_wait函数:获取当前正在运行的进程,设置进程状态为等待状态,执行脱链操作,并将进程加入等待结构;进程唤醒:krlsched_up函数:从等待数据结构中获取进程,然后设置......
    • rfc7234之http缓存
      声明:本人原创文章,详细内容已发布在我的微信个人技术公众号---网络技术修炼,公众号总结普及网络基础知识,包括基础原理、网络方案、开发经验和问题定位案例等,欢迎关注。缓存概念缓存处理请求步骤缓存如果查询到某个请求已经有缓存,那么需要进一步检查该资源的新鲜度,根据新鲜度和......
    • linux 内核同步机制
      rw_semaphore,读写信号量和mutex很像。保护临界区的原因是其同时有被修改和读的可能,如果这个资源只是被读永远不会修改,那也不需要保护。有这样一个场景,被保护的临界区大部分情况下都是读取操作,少数情况会被修改。如果使用mutex,假设此刻一个读者进入临界区,另外一个线程也是读取操作......
    • Hibernate查询返回自定义对象
      /***Convertqueryresulttovolistutilclass.*/classAliasToBeanResultTransformerimplementsResultTransformer{privatestaticfinallongserialVersionUID=-5199190581393587893L;privatefinalClass<T>resultCla......