NHibernate文檔翻譯 第8章 NHibernate緩衝(NHibernate.Caches)

來源:互聯網
上載者:User
第8章 NHibernate緩衝(NHibernate.Caches)

目錄

如何使用?

什麼是 NHibernate.Caches?

NHibernate.Caches 是 NHibernate 的附加軟體,它是Kevin Williams (aka k-dub)貢獻的.緩衝是一個儲存實體的地點(在首次載入時);一旦進入緩衝,能夠取得它們,而無需(再次)查詢的背景儲存(資料庫)。這意味著它們能更快的載入(或重新載入)。

NHibernate session有一個內部的(一級)緩衝,存放著它的實體。這些緩衝沒有共用,因此session被銷毀時它的緩衝也被銷毀了。NHibernate提供了二級緩衝系統;他在SessionFactory層級工作。因此它被同一個SessionFactory產生的session共用。

使用每個請求(request)一個session模式,很多個Session可以並發的訪問同一個實體,而不用每次都訪問資料庫,因此效能獲得了提升。

貢獻者使得在NHibernate中使用不同的緩衝提供者成為可能:

  • NHibernate.Caches.Prevalence使得使用底層的 Bamboo.Prevalence實現作為緩衝提供者成為可能。開啟檔案Bamboo.Prevalence.license.txt可以看到它的許可資訊,你也可以訪問它的網站。

  • NHibernate.Caches.SysCache使得使用底層的System.Web.Caching.Cache實現作為緩衝提供者成為可能。這意味著你可以依賴ASP.NET的緩衝特性來理解它是怎麼工作的。要得到更多的資訊,可以閱讀Caching Application Data(在NSDN上)。

如何使用?

這裡是在NHibernate中啟用二級緩衝的步驟:

  • 選擇需要使用的緩衝提供者並且拷貝它的程式集到你的程式集路徑(NHibernate.Caches.Prevalence.dll 或者NHibernate.Caches.SysCache.dll).

  • 為了表明使用哪種緩衝提供者,在NHibernate設定檔中(可以在YourAssembly.exe.config或者web.config或者.cfg.xml 檔案)添加下面的內容:

    <add key="hibernate.cache.provider_class" value="XXX" />(1)<add key="relativeExpiration" value="120" />(2)      

    (1)

    "XXX" 可以是 "NHibernate.Caches.Prevalence.PrevalenceCacheProvider, NHibernate.Caches.Prevalence" 或者"NHibernate.Caches.SysCache.SysCacheProvider, NHibernate.Caches.SysCache"。

    (2)

    relativeExpiration的值是你希望緩衝每個實體的秒數(這裡是兩分鐘)

  • 添加<cache usage="read-write|nonstrict-read-write|read-only"/>(在<class>後面)到你需要緩衝的實體映射中.它也為集合(bag, list, map, set, ...)提供支援.

小心:緩衝不會知道另一個進程儲存的實體的變化(儘管配置了快取資料的到期時間).當緩衝被建立在SessionFactory層級,他們會和SessionFactory執行個體一起被銷毀; 所以必須在你需要緩衝的時候,保持SessionFactory存在.

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.