<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-57  評(píng)論-202  文章-17  trackbacks-0
          一般而言,ORM的數(shù)據(jù)緩存應(yīng)包含如下幾個(gè)層次:
          1. 事務(wù)級(jí)緩存(Transcation Layer Cache)
          2. 應(yīng)用級(jí)/進(jìn)程級(jí)緩存(Application/Process Layer Cache)
          3. 分布式緩存(Cluster Layer Cache)

          Hibernate數(shù)據(jù)緩存(Cache)分為兩個(gè)層次,以Hibernate語(yǔ)義加以區(qū)分,可分為:
          1. 內(nèi)部緩存(Session Level,也稱(chēng)為一級(jí)緩存)
          2. 二級(jí)緩存(SessionFactory Level,也稱(chēng)為二級(jí)緩存)

          Hibernate中,緩存將在以下情況中發(fā)揮作用:
          1. 通過(guò)id[主鍵]加載數(shù)據(jù)時(shí)
          2. 延遲加載

          內(nèi)部緩存正常情況下由Hibernate自動(dòng)維護(hù),如果需要手動(dòng)干預(yù),可以通過(guò)以下方法完成:
          1. Session.evict
             將某個(gè)特定對(duì)象從內(nèi)部緩存清除。
          2. Session.clear
             清空內(nèi)部緩存。

          在Hibernate中,二級(jí)緩存涵蓋了應(yīng)用級(jí)緩存和分布式緩存領(lǐng)域。如果數(shù)據(jù)滿足以下條件,則可將其納入緩存管理。
          1. 數(shù)據(jù)不會(huì)被第三方應(yīng)用修改;
          2. 數(shù)據(jù)大小(Data Size)在可接收的范圍之內(nèi);
          3. 數(shù)據(jù)更新頻率較低;
          4. 同一數(shù)據(jù)可能會(huì)被系統(tǒng)頻繁引用;
          5. 非關(guān)鍵數(shù)據(jù)(關(guān)鍵數(shù)據(jù),如金融帳戶數(shù)據(jù))。
          Hibernate本身并未提供二級(jí)緩存的產(chǎn)品化實(shí)現(xiàn),而是為眾多的第三方緩存組件提供了接入接口,較常用的第三方組件有:
          1. JCS
          2. EHCache
          3. OSCache
          4. JBossCache
          5. SwarmCache
          Hibernate中啟用二級(jí)緩存,需要在hibernate.cfg.xml配置hibernate.cache.provider_class參數(shù),之后,需要在映射文件中指定各個(gè)映射實(shí)體(以及collection)的緩存同步策略。Hibernate提供了一下4種內(nèi)置的緩存同步策略:
          1. read-only
             只讀。對(duì)于不會(huì)發(fā)生改變的數(shù)據(jù),可使用只讀型緩存。
          2. nonstrict-read-write
             如果程序?qū)Σl(fā)訪問(wèn)下的數(shù)據(jù)同步要求不是非常嚴(yán)格,且數(shù)據(jù)更新操作頻率較低,可以采用本選項(xiàng),獲得較好的性能。
          3. read-write
             嚴(yán)格可讀寫(xiě)緩存。基于時(shí)間戳判定機(jī)制,實(shí)現(xiàn)了“read committed”事務(wù)隔離等級(jí)。可用于對(duì)數(shù)據(jù)同步要求嚴(yán)格的情況,但不支持分布式緩存。這也是實(shí)際應(yīng)用中使用最多的同步策略。
          4. transactional
             事務(wù)型緩存,必須運(yùn)行在JTA事務(wù)環(huán)境中。
    posted on 2005-06-22 18:15 小米 閱讀(6108) 評(píng)論(5)  編輯  收藏 所屬分類(lèi): Hibernate

    評(píng)論:
    # re: 《深入淺出Hibernate》讀書(shū)筆記(3)——數(shù)據(jù)緩存 2005-11-18 09:06 | outersky
    請(qǐng)教一下,我現(xiàn)在不想用它的cache,該怎么弄。
    因?yàn)槲椰F(xiàn)在是兩臺(tái)服務(wù)器做錯(cuò)誤恢復(fù)的(通過(guò)客戶端類(lèi)庫(kù)實(shí)現(xiàn)負(fù)載均衡和錯(cuò)誤檢測(cè)),所以如果每個(gè)服務(wù)器都有自己cache的話,如果在一個(gè)hibernate里面剛剛修改過(guò),第二個(gè)hibernate還沒(méi)從數(shù)據(jù)庫(kù)里面load過(guò)來(lái),所以可能會(huì)出現(xiàn)混亂,想把兩邊的cache(應(yīng)該是二級(jí)cache吧)都禁止掉。

    請(qǐng)教一下該如何處理?網(wǎng)上到處都是打開(kāi)cache的,不知道如何禁止。用的是hibernate3,好像默認(rèn)就有二級(jí)cache了。  回復(fù)  更多評(píng)論
      
    # re: 《深入淺出Hibernate》讀書(shū)筆記(3)——數(shù)據(jù)緩存 2005-11-27 16:48 | yumi301
    no,二級(jí)緩存默認(rèn)是沒(méi)有的,
    緩存是對(duì)class和set的而言的,每個(gè)class和set標(biāo)記都有<cache子標(biāo)記來(lái)設(shè)置是否該class放緩存中。  回復(fù)  更多評(píng)論
      
    # re: 《深入淺出Hibernate》讀書(shū)筆記(3)——數(shù)據(jù)緩存 2006-02-28 23:04 | s
    象OSCache都是支持cluster的.不需要關(guān)掉cache.你解決問(wèn)題的方向錯(cuò)了.  回復(fù)  更多評(píng)論
      
    # re: 《深入淺出Hibernate》讀書(shū)筆記(3)——數(shù)據(jù)緩存 2006-05-22 14:55 | jackyhuang
    照本宣科,沒(méi)有一點(diǎn)實(shí)際意義。  回復(fù)  更多評(píng)論
      
    # re: 《深入淺出Hibernate》讀書(shū)筆記(3)——數(shù)據(jù)緩存 2009-05-06 11:02 | ww
    大型的項(xiàng)目,對(duì)系統(tǒng)性能要求比較高的,還是自己控制緩存吧。  回復(fù)  更多評(píng)論
      
    主站蜘蛛池模板: 亚洲国产激情在线一区| 97se亚洲综合在线| 亚洲AV福利天堂一区二区三 | 亚洲成人黄色网址| 亚洲人成色77777在线观看| 一级看片免费视频| 亚洲一区二区免费视频| 国产精品免费播放| 久久亚洲国产成人亚| 免费国产黄网站在线看| h片在线免费观看| 亚洲精品午夜无码电影网| 最新国产成人亚洲精品影院| 国产三级在线免费| 日韩高清免费观看| 亚洲精品午夜无码电影网| 深夜特黄a级毛片免费播放| 免费无码又爽又刺激高潮 | 91嫩草私人成人亚洲影院| 中文字幕的电影免费网站| 无码人妻一区二区三区免费手机| 亚洲裸男gv网站| 亚洲国产成人精品久久| 国产成人无码免费网站| 国产v精品成人免费视频400条| 亚洲AV综合色一区二区三区| 亚洲AV无码国产精品永久一区| 日韩电影免费观看| 免费一级毛片不卡不收费| 亚洲最大黄色网站| 午夜免费啪视频在线观看 | 中文字幕在线观看亚洲| 国产成人精品一区二区三区免费| 中文亚洲成a人片在线观看| 亚洲午夜无码久久久久软件| 日韩免费在线观看视频| 亚洲AV永久青草无码精品| 国产精品白浆在线观看免费| 亚洲狠狠婷婷综合久久久久| 两个人的视频www免费| 亚洲乳大丰满中文字幕|