<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)論
      
    主站蜘蛛池模板: 久久久久久a亚洲欧洲AV| 在线亚洲高清揄拍自拍一品区| 亚洲日本在线观看视频| 亚洲人成无码网站久久99热国产| 亚洲乱妇熟女爽到高潮的片| 免费观看AV片在线播放| 亚洲精品无码99在线观看| 亚洲福利电影一区二区?| 亚洲heyzo专区无码综合| 99久久免费国产特黄| 成人免费视频试看120秒| 亚洲色无码国产精品网站可下载| 国产精品久久久久免费a∨| 亚洲丰满熟女一区二区v| 老司机精品免费视频| 最近中文字幕无吗免费高清 | 最新猫咪www免费人成| 亚洲欧美国产国产综合一区| 成人伊人亚洲人综合网站222| 一级毛片免费视频网站| 亚洲国产精品国自产电影| 看一级毛片免费观看视频| 免费va人成视频网站全| 免费网站观看WWW在线观看| 无码欧精品亚洲日韩一区夜夜嗨| 国产无遮挡色视频免费观看性色| 亚洲第一精品福利| 久久精品女人天堂AV免费观看| 相泽南亚洲一区二区在线播放| a级毛片无码免费真人| 水蜜桃视频在线观看免费| 成年女人毛片免费播放视频m| 日韩在线视频播放免费视频完整版 | 哒哒哒免费视频观看在线www| 久青草视频97国内免费影视| 亚洲国产美女精品久久久久| 国产成人综合久久精品免费| 亚洲国产综合精品中文第一| 亚洲国产成人五月综合网| 美女被免费视频网站| 国产成人亚洲综合无码精品|