国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

對Hibernate一級緩存與二級緩存的解析

開發 后端
緩存是介于物理數據源與應用程序之間,是數據庫數據在內存中的存放臨時copy的容器,其作用是為了減少應用程序對物理數據源訪問的次數,從而提高了應用的運行性能。

本文主要介紹Hibernate緩存,以及Hibernate緩存的分類,下面一一為讀者簡單分析,希望大家看后有很大的收獲。

1、Hibernate緩存概述

緩存是介于物理數據源與應用程序之間,是數據庫數據在內存中的存放臨時copy的容器,其作用是為了減少應用程序對物理數據源訪問的次數,從而提高了應用的運行性能。Hibernate在進行讀取數據的時候,根據緩存機制在相應的緩存中查詢,如果在緩存中找到了需要的數據(我們把這稱做“緩存命中"),則就直接把命中的數據作為結果加以利用,避免了建立數據庫查詢的性能損耗。

2:Hibernate緩存分類

一級緩存(session):內部緩存

事務范圍:緩存只能被當前事務訪問。緩存的生命周期依賴于事務的生命周期,當事務結束時,緩存也就結束生命周期。

二級緩存(sessionFactory):緩存被應用范圍內的所有事務共享。 這些事務有可能是并發訪問緩存,因此必須對緩存進行更新。緩存的生命周期依賴于應用的生命周期,應用結束時, 緩存也就結束了生命周期,二級緩存存在于應用范圍。集群范圍:在集群環境中,緩存被一個機器或者多個機器的進程共享。緩存中的數據被復制到集群環境中的每個進程節點,進程間通過遠程通信來保證緩存中的數據的一致性, 緩存中的數據通常采用對象的松散數據形式,二級緩存也存在與應用范圍。

注意:對大多數應用來說,應該慎重地考慮是否需要使用集群范圍的緩存,再加上集群范圍還有數據同步的問題,所以應當慎用。多種范圍的緩存處理過程持久化層可以提供多種范圍的緩存。如果在事務范圍的緩存中沒有查到相應的數據,還可以到應用范圍或集群范圍的緩存內查詢,如果還是沒有查到,那么只有到數據庫中查詢了。

緩存應用的范圍:修改少,數量在可以接受的范圍內

使用二級緩存的原則:

◆數據不會被第三方修改

◆同一數據系統經常引用

◆數據大小在可接受范圍之內

◆關鍵數據或不會被并發更新的數據

hibernate引入第三方的緩存組件EHCACHE,下面是具體的實現步驟:

修改hibernate.cfg.xml配置引入ehCache緩存

  1. <hibernate-configuration> 
  2.  
  3.                         <session-factory> 
  4.  
  5.                                 <property name="hibernate.cache.provider_class"> 
  6.  
  7.                                         net.sf.ehcache.hibernate.EhCacheProvider  
  8.  
  9.                                 property> 
  10.  
  11.                                  
  12.  
  13.                                 <property name="hibernate.cache.use_query_cache">trueproperty> 
  14.  
  15.                         session-factory> 
  16.  
  17.                 hibernate-configuration> 
  18.  

在src根目錄下加入ehcache.xml文件,具體內容如下:

  1. <ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="ehcache.xsd"> 
  2.  
  3.                 <defaultCache 
  4.  
  5.                             maxElementsInMemory="10000" 
  6.  
  7.                             eternal="false" 
  8.  
  9.                             timeToIdleSeconds="120" 
  10.  
  11.                             timeToLiveSeconds="120" 
  12.  
  13.                             overflowToDisk="true" 
  14.  
  15.                             /> 
  16.  
  17.                 ehcache> 
  18.  

在映射文件中指定緩存同步策略

  1. <class name="com.tenly.bean.Student"> 
  2.  
  3.                         <cache usage="read-write"> 
  4.  
  5.                         <set name="classroom"> 
  6.  
  7.                                 <cache usage="read-only"> 
  8.  
  9.                         set> 
  10.  
  11.                 class> 
  12.  

usage屬性說明:

◆read-only:只讀。對于不會發生改變的數據,可使用只讀型緩存。

◆nonstrict-read-write:不嚴格可讀寫緩存。如果應用程序對并發訪問下的數據同步要求不是很嚴格的話,而且數據更新操作頻率較低。采用本項,可獲得良好的性能。

◆read-write 對于經常被讀但很少修改的數據,可以采用這種隔離類型,因為它可以防止臟讀這類的并發問題.

◆transactional(事物型)在Hibernate中,事務型緩存必須運行在JTA事務環境中。在測試query時,說明其將用二級緩存

  1. query.setCacheable(true); 

3、釋放緩存:

一級緩存的釋放

Session.evict(XXX) 將某個特定的對象從內部緩存中清除,上述的XXX 為對象的實例名。使用此方法有兩種適用情形,需要及時釋放對象占用的內存維持系統的穩定性是不希望當前Session繼續運用此對象的狀態變化來同步更新數據庫。Session.clear()清除所有的一級緩存

二級緩存的釋放

SessionFacatoyr.evict(XXX) 將某個特定的對象從內部緩存中清除,上述的XXX 為對象的實例名。使用此方法有兩種適用情形,需要及時釋放對象占用的內存維持系統的穩定性是不希望當前Session繼續運用此對象的狀態變化來同步更新數據庫。SessionFactory.clear()清除所有的二級緩存

4、查詢緩存:

二級緩存策略的一般過程:

Hibernate進行條件查詢的時候,總是發出一條select * from XXX where …(XXX為 表名,類似的語句下文統稱Select SQL)這樣的SQL語句查詢數據庫,一次獲得所有的符合條件的數據對象。把獲得的所有數據對象根據ID放入到第二級緩存中。當Hibernate根據ID訪問數據對象的時候,首先從內部緩存中查找,如果在內部緩存中查不到就配置二級緩存,從二級緩存中查;如果還查不到,再查詢數據庫,把結果按照ID放入到緩存。添加數據、刪除、更新操作時,同時更新二級緩存。這就是Hibernate做批處理的時候效率不高的原因,原來是要維護二級緩存消耗大量時間的緣故。

條件查詢的處理過程:

第一次查找age>20的所有學生信息,然后納入二級緩存。第二次我們的查詢條件變了,查找age>15的所有學生信息,顯然第一次查詢的結果完全滿足第二次查詢的條件,但并不是滿足條件的全部數據。這樣的話,我們就要再做一次查詢得到全部數據才行。如果我們執行的是相同的條件語句,Hibernate引入Query Cache的。

查詢緩存策略的一般過程:

完全相同的Select SQL重復執行。重復執行期間,Query Key對應的數據表不能有數據變動(比如添、刪、改操作)

啟用Query Cache,我們需要在hibernate.cfg.xml中進行配置,參考配置如下(只列出核心配置項):

  1. <hibernate-configuration> 
  2.  
  3.                                         <session-factory> 
  4.  
  5.                                                 <property name="hibernate.cache.user_query_cache">trueproperty> 
  6.  
  7.                                         session-factory> 
  8.  
  9.                                 hibernate-configuration> 
  10.  

在查詢執行之前,將Query.Cacheable設置為true,而且每次都應該這樣。比如:

  1. Query query=session.createQuery(hql).setInteger(0.15);  
  2.  
  3.                                 query.setCacheable(true);  
  4.  

【編輯推薦】

  1. 生成Hibernate Mapping文件的分析
  2. 對Hibernate中get()與load()不同點分析
  3. Struts-Spring-Hibernate案例
  4. 簡述Hibernate配置連接池
  5. 對Hibernate中get()與load()不同點分析
責任編輯:仲衡 來源: blogjava
相關推薦

2009-06-18 15:24:35

Hibernate二級

2009-09-21 14:59:31

Hibernate二級

2009-09-24 11:04:56

Hibernate二級

2009-09-21 14:39:40

Hibernate二級

2009-09-21 13:31:10

Hibernate 3

2009-06-10 15:00:58

Hibernate二級配置

2013-09-08 23:30:56

EF Code Fir架構設計MVC架構設計

2009-09-25 16:29:32

Hibernate一級

2009-08-13 18:12:12

Hibernate 3

2025-06-26 01:55:00

2012-02-08 11:01:53

HibernateJava

2025-04-29 07:06:20

2022-03-01 18:03:06

Spring緩存循環依賴

2022-12-02 12:01:30

Spring緩存生命周期

2009-08-13 17:50:49

Hibernate 3

2009-06-18 14:51:12

Hibernate緩存Hibernate

2024-12-03 14:38:07

CaffeineRedis二級緩存

2009-09-23 17:03:08

Hibernate S

2023-08-01 08:10:46

內存緩存

2009-07-02 09:23:27

Hibernate緩存
點贊
收藏

51CTO技術棧公眾號

99精品国产一区二区| 久久亚洲精品网站| 自慰无码一区二区三区| 久久影院亚洲| 91久久国产婷婷一区二区| 一区二区亚洲视频| 在线不卡免费欧美| 日韩黄色网址| 亚洲免费资源在线播放| 欧美成人黑人猛交| 99v久久综合狠狠综合久久| 大胆欧美熟妇xx| 激情综合网天天干| 日韩电影在线播放| 日日骚欧美日韩| 日韩高清国产精品| 日韩电影在线观看网站| 欧美激情论坛| 免费观看在线综合| 色撸撸在线观看| 九一久久久久久| 神马午夜伦理影院| 成人小视频在线| 午夜免费福利小电影| av亚洲精华国产精华精华| 成人国产在线看| 麻豆国产一区二区| 欧美日韩一级在线| youjizz久久| 欧美成人黄色网址| 亚洲制服欧美中文字幕中文字幕| 超碰影院在线| 在线视频国内自拍亚洲视频| 18视频免费网址在线观看| 欧美哺乳videos| 亚洲欧美韩国| 欧美日韩xxxxx| 欧美日韩激情| 高清日韩一区| 日韩av一区二区在线影视| 综合久久国产| 久久天天做天天爱综合色| 男女午夜刺激视频| 日韩欧美国产视频| 求av网址在线观看| 亚洲人成网站在线播| 97青娱国产盛宴精品视频| 国产精品视频26uuu| 在线播放不卡| 久久久久久久久网| 中文字幕一区二| 在线播放日本| 最近2019年好看中文字幕视频| 国产亚洲精品久久久久久牛牛| 无遮挡爽大片在线观看视频| 久久精品亚洲热| 韩日一区二区三区| 国产精品一区二区三区在线观| 精品在线免费观看| 欧美黄色性生活| 狠狠干狠狠久久| 高清在线视频不卡| 久久久免费精品| 亚洲精品系列| av动漫在线观看| 欧美中文字幕久久| 亚洲www啪成人一区二区| 日韩美女视频中文字幕| 久久国产精品亚洲77777| wwwxxx黄色片| 欧美日韩国产电影| 精品国产乱码久久久久久樱花| 亚洲伊人一本大道中文字幕| 国产福利91精品一区| 看黄的a网站| 亚洲国产中文字幕久久网| 白嫩白嫩国产精品| 蜜桃传媒一区二区| 国产欧美一区二区三区在线老狼| a天堂在线资源| 欧美激情综合亚洲一二区| 99香蕉国产精品偷在线观看 | 欧美日韩免费观看中文| 久久色中文字幕| aaa在线观看| 久久久久女教师免费一区| 日韩网站在线| 手机视频在线观看| 欧美成人三级电影在线| 国内精品视频在线观看 | 亚洲精品一区二区三区中文字幕| 国产精品一区视频网站| 国产欧美一区二区在线| 手机电影在线观看| 国产免费亚洲高清| 久久人人超碰精品| 日本性爱视频在线观看| 国产日韩在线看| 国产精品丝袜黑色高跟| 182在线视频观看| 国产精品久久久久久久小唯西川| 亚洲色图都市小说| 国产精品亚洲综合在线观看| 在线天堂一区av电影| 欧美精品日韩综合在线| 久久超碰99| 天天色综合天天色| 中文字幕精品久久久久| 日韩国产成人精品| 成人av电影观看| 国产精品色婷婷视频| 亚洲国产高清不卡| 亚州欧美在线| 无码人妻少妇伦在线电影| 亚洲成人av片在线观看| 国产精品免费看| p色视频免费在线观看| 国产日韩欧美综合| 中文字幕字幕中文在线中不卡视频| 亚洲精品一区av| 亚洲第一综合| 日韩一区二区免费视频| 136国产福利精品导航网址| 麻豆app在线观看| 国产精品极品在线| 亚洲一区二区三区三| 九色成人国产蝌蚪91| 四虎精品一区二区永久在线观看| 日韩在线欧美在线国产在线| 豆国产96在线|亚洲| 中文在线资源| 2018国产在线| 色悠悠国产精品| 中文字幕在线不卡一区二区三区| 国产成人无码一二三区视频| 黄页网址大全在线播放| 综合网日日天干夜夜久久| 国产激情视频一区二区在线观看| av超碰免费在线| 欧美国产视频在线观看| 欧美日韩国产另类不卡| 国产日韩1区| 男人天堂亚洲天堂| 欧美精品与人动性物交免费看| 欧美一二区视频| 蜜臀精品久久久久久蜜臀| 成人黄色在线电影| 日韩欧美第二区在线观看| 精品国产一区久久| 国产精品综合视频| 四虎影视4hu4虎成人| 日韩av一二三四| 51ⅴ精品国产91久久久久久| 亚洲国产成人tv| 欧美1区3d| free性欧美16hd| 熟女少妇在线视频播放| 久久久亚洲国产天美传媒修理工| 亚洲综合激情网| 国产日本精品| 日韩视频网站在线观看| 91av俱乐部| 国产精品揄拍500视频| 欧美丝袜丝交足nylons图片| 精品一区二区影视| 亚洲成人高清| 超碰在线公开超碰在线| 欧美下载看逼逼| 色噜噜狠狠狠综合曰曰曰| 亚洲欧美电影一区二区| 国产精品成人一区二区不卡| 懂色av一区| 国产一伦一伦一伦| 国产伦精品一区二区三毛| 亚洲毛片在线免费观看| 亚洲天堂2014| 丝袜诱惑制服诱惑色一区在线观看 | 欧美乱做爰xxxⅹ久久久| 欧美激情精品久久久久久免费印度 | 男男激情在线| 中文字幕99| 欧美大片免费看| 欧美亚洲综合网| 成人免费视频一区| 欧美成人自拍| 亚洲综合av一区二区三区| 91天堂在线| 黄色一级片国产| 91久久综合亚洲鲁鲁五月天| 亚洲欧洲在线播放| 欧美视频中文字幕在线| 92精品国产成人观看免费| 伊人久久亚洲美女图片| 国产一区一区| 日本乱理伦在线| 在线视频专区| 日韩手机在线观看视频| 欧美一区少妇| 成人欧美一区二区三区在线湿哒哒 | 成人三级av|