首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> 關於.NET

NHibernate 二級快取入門(上):架構、提供者與配置實作

     編輯:關於.NET

二級快取架構

由 ISessionFactory 建立,所有 ISession 共享。查詢順序:一級快取 → 二級快取 → 資料庫。內建 HashtableCache 功能有限、效能差,生產環境建議用第三方提供者。

適用場景:常用、資料量小、極少被外部系統修改的唯讀/少寫資料。

第三方快取提供者

實作 NHibernate.Cache.ICacheProvider 介面。NHibernate Contrib 提供六種開源提供者:

  • MemCache、Prevalence、SharedCache、SysCache、SysCache2、Velocity

實作五步驟

Step 1:配置提供者

<property name="cache.provider_class">NHibernate.Cache.HashtableCacheProvider</property>

Step 2:啟用二級快取

<property name="cache.use_second_level_cache">true</property>

Step 3:提供者本身配置

第三方提供者需額外設定(到期時間、物件上限等)。本文用內建 Hashtable 略過。

Step 4:為類別/集合指定快取策略

四種並發策略:

  • read-only:唯讀,可用於叢集
  • read-write:讀寫
  • nonstrict-read-write:非嚴格讀寫,不保證一致性
  • transactional:交易型,可重複讀隔離級別

兩種配置方式:

  1. 映射檔 <cache usage="..." region="..."/>(須在 <id> 前)
  2. hibernate.cfg.xml 用 <class-cache>、<collection-cache>(建議,集中維護)
<class-cache class="DomainModel.Entities.Customer,DomainModel" usage="read-write"/>

Step 5:測試驗證

不同 Session 讀取同一實體:第一次查資料庫,第二次命中二級快取。

二級快取命中 SQL 輸出

結語

完成基礎配置與驗證。下篇將探討資料異動同步、查詢快取與快取管理。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved