Topquan's Blog

          分享價值----成就你我----我的博客----你的家

          Hibernate 數(shù)據(jù)緩存

           

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

          一級緩存:
          又稱內部緩存,保存了與當前session相關聯(lián)的數(shù)據(jù)對象,伴隨Session實例的創(chuàng)建而創(chuàng)建,消亡而消亡。因此又稱此緩存為Session level cache。

          一級緩存正常情況下又Hibernate自動維護,如果需要手動干預,可以通過以下方法完成。
          1.Session.evict
            將某個特定對象從內部緩存中清除。
          2.Sessin.clear
            清空內部緩存

          二級緩存:
          又稱為SessionFactory Level Cache.
          對什么樣的數(shù)據(jù)使用二級緩存?
          對所有數(shù)據(jù)都進行緩存是最簡單的辦法,也是最常用的辦法。
          但是某些情況下,反而會影響性能,比如電話費查詢系統(tǒng),如果實行緩存,內存會被幾乎不可能再被重用的數(shù)據(jù)充斥,導致性能下降。
          如果數(shù)據(jù)滿足以下條件,可以將其納入緩存管理:
          1.數(shù)據(jù)不會被第三方應用修改。
          2.data size在可以接受的范圍之內
          3.數(shù)據(jù)更新頻率較低
          4.同一數(shù)據(jù)可能會被系統(tǒng)頻繁引用
          5.非關鍵數(shù)據(jù)
          Hibernate本身并沒提供二級緩存的產(chǎn)品化實現(xiàn)(只提供了一個基于HashTable的簡單緩存以供調試),可以使用第三方緩存來實現(xiàn)。
          默認采用EHCache作為二級緩存實現(xiàn)。
          EHCache org.ehcache.hibernate.Provider

          posted on 2006-08-05 01:16 topquan 閱讀(1211) 評論(0)  編輯  收藏 所屬分類: Hibernate

          主站蜘蛛池模板: 岑溪市| 衡东县| 伊吾县| 政和县| 民勤县| 岫岩| 买车| 金门县| 湘西| 颍上县| 扶沟县| 岫岩| 天台县| 浠水县| 沙坪坝区| 太仆寺旗| 罗定市| 高要市| 忻城县| 思南县| 论坛| 正宁县| 芷江| 通江县| 玛纳斯县| 普兰县| 德江县| 晋宁县| 临朐县| 光泽县| 辽源市| 正定县| 营山县| 齐河县| 新源县| 清丰县| 延川县| 西乌珠穆沁旗| 阳原县| 肥城市| 湄潭县|