<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,也稱為一級(jí)緩存)
          2. 二級(jí)緩存(SessionFactory Level,也稱為二級(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)格可讀寫緩存?;跁r(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 小米 閱讀(6107) 評(píng)論(5)  編輯  收藏 所屬分類: Hibernate

    評(píng)論:
    # re: 《深入淺出Hibernate》讀書筆記(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ò)客戶端類庫(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)上到處都是打開cache的,不知道如何禁止。用的是hibernate3,好像默認(rèn)就有二級(jí)cache了。  回復(fù)  更多評(píng)論
      
    # re: 《深入淺出Hibernate》讀書筆記(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》讀書筆記(3)——數(shù)據(jù)緩存 2006-02-28 23:04 | s
    象OSCache都是支持cluster的.不需要關(guān)掉cache.你解決問(wèn)題的方向錯(cuò)了.  回復(fù)  更多評(píng)論
      
    # re: 《深入淺出Hibernate》讀書筆記(3)——數(shù)據(jù)緩存 2006-05-22 14:55 | jackyhuang
    照本宣科,沒(méi)有一點(diǎn)實(shí)際意義。  回復(fù)  更多評(píng)論
      
    # re: 《深入淺出Hibernate》讀書筆記(3)——數(shù)據(jù)緩存 2009-05-06 11:02 | ww
    大型的項(xiàng)目,對(duì)系統(tǒng)性能要求比較高的,還是自己控制緩存吧。  回復(fù)  更多評(píng)論
      
    主站蜘蛛池模板: 一出一进一爽一粗一大视频免费的 | 国产亚洲成人在线播放va| 中文在线观看永久免费| 久久久久亚洲av无码专区喷水| 国拍在线精品视频免费观看| 激情婷婷成人亚洲综合| 久久电影网午夜鲁丝片免费| 九九综合VA免费看| 亚洲理论片中文字幕电影| 免费中文字幕不卡视频| 69视频在线是免费观看| 日韩在线观看视频免费| 亚洲欧洲日产韩国在线| 亚洲综合另类小说色区色噜噜| 色播精品免费小视频| eeuss在线兵区免费观看| 亚洲第一页在线视频| 久久亚洲中文字幕精品一区四| 亚洲视频免费播放| 亚洲小说区图片区| 亚洲片国产一区一级在线观看| 亚洲视频免费在线看| 久久国产免费直播| 久久久久亚洲精品无码网址色欲 | 中文精品人人永久免费 | 99久久国产免费-99久久国产免费| 亚洲bt加勒比一区二区| 国产无遮挡又黄又爽免费视频| 日韩免费电影网站| 九九久久精品国产免费看小说| 亚洲综合一区无码精品| 亚洲成人免费在线| 国产亚洲午夜高清国产拍精品 | 69影院毛片免费观看视频在线 | 四虎成人精品永久免费AV| 成年网站免费入口在线观看| 亚洲日韩精品无码专区加勒比| 亚洲精品动漫人成3d在线| 91在线品视觉盛宴免费| 美女视频黄a视频全免费网站色 | 国产免费MV大全视频网站|