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

Hxj.Data 快取機制全解析:HttpRuntime.Cache、配置區段、實體級啟用

     編輯:關於ASP.NET

架構:基於 System.Web.HttpRuntime.Cache,預設關閉

Web 專案直接可用;非 Web 專案需自行實作 ICacheProvider 介面並註冊。

啟用快取:web.config 區段配置

<configSections>
  <section name="HxjCacheConfig" type="Hxj.Data.CacheConfiguration,Hxj.Data" />
</configSections>

<HxjCacheConfig enable="true">
  <entities>
    <add key="NorthwindConnectionString.Products" value="60" />
  </entities>
</HxjCacheConfig>

<connectionStrings>
  <add name="NorthwindConnectionString" 
       connectionString="Data Source=.;Initial Catalog=Northwind;Integrated Security=True"
       providerName="System.Data.SqlClient" />
</connectionStrings>

配置解讀

  • enable="true":總開關,預設 false。
  • entities/add@key:格式 連線字串名稱.實體類別名,必須精確對應。
  • value:秒數(如 60)或檔案相依路徑(如 1.txt)。

檔案相依性範例

<add key="NorthwindConnectionString.Products" value="1.txt" />

程式啟動時檢查 ~/1.txt 是否存在,不存在則該配置失效。檔案異動 → 該實體所有快取失效。

測試驗證

List list = new List();
for (int i = 0; i < 2; i++)
    list.Add(DbSession.Default.From().ToFirst()); // 第 1 次查 DB,第 2 次命中快取

for (int i = 0; i < 3; i++)
    list.Add(DbSession.Default.From().ToFirst()); // 全部命中快取

若配置正確,實際只會對資料庫執行一次查詢。

快取範圍與鍵值

  • 針對 From<T>() 產生的完整 SQL + 參數 快取。
  • 不同 Where/OrderBy/Page 組合 = 不同快取項目。
  • Insert/Update/Delete 不會自動清除 相關快取(需搭配 Refresh() 或檔案相依性觸發失效)。

生產建議

  1. 僅對「讀多寫少、容許秒級延遲」的實體啟用(如產品目錄、分類表)。
  2. 搭配檔案相依性:寫入端異動後 File.WriteAllText("trigger.txt", DateTime.Now.ToString()) 觸發失效。
  3. 大量動態查詢條件組合時謹慎啟用,避免快取項目爆炸佔用記憶體。

Hxj.Data 快取設計輕量、配置導向、零程式碼入侵,適合中小型 Web 專案快速提升讀取效能。

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