ASP.NET 緩衝(Cache)

來源:互聯網
上載者:User

      ASP.NET提供了在一個ASP.NET應用程式基底本上緩衝資訊的編程功能。該功能和Application對象相似,但它具有在ASP.NET應用程式的生命週期內動態維護緩衝資訊的能力。在應用程式中快取資料可以極大地提高效能,因為資料對於伺服器是本地的,能夠被快速檢索。而不必重新查詢最初的資料來源。特別現在的系統一般最大的瓶頸是在資料庫,合理利用緩衝可以減少很多沒有必要的資料庫訪問,從而最佳化系統的效能。

      Cache對象提高了實現基於相關性的到期和回調通知的能力,回調通知允許在管理應用程式的其他使用者或ASP.NET本身對緩衝中快取項目的操作。使用Cache對象能夠儲存任何類型(實值型別或應用類型),然後再更新或刪除它們。Cache是比Application對象更靈活的一個對象。它支援:

      1、基於相關性的到期和刪除——Cache對象提供了把緩衝值的自動到期和刪除綁定到一個檔案事件、一個具體的或者相對的日期/時間或另一緩衝鍵的能力。

      2、自動的鎖定管理——Cache對象包括內部鎖定管理,為原子更新(可以放在一個計算操作中的更新)提供同步。

      3、回調機制——Cache對象提供了設定回呼函數在刪除快取項目被調用的能力。

     

      Cache的添加方法有Add()或Insert(),Insert方法可以使用選擇性參數,既使用預設參數來實現緩衝的添加:

      Cache.Add(KeyName, KeyValue,Dependencies,AbsoluteExpiration,SlidingExpiration,Priority,CacheItemRemoveCallback);

      參數分別為:緩衝名,緩衝的對象,依賴項,絕對到期時間,相對到期時間,優先順序,緩衝到期引發的事件。

 

      緩衝依賴項:檔案依賴,其他緩衝依賴,資料庫依賴和到期時間方法來設定,當依賴項發生改變時,緩衝會失效,並可以引發一定事件。

      1、檔案依賴:緩衝依賴xml檔案:

顯示行號 複製代碼 ?
  1. DataSet dsProducts = new DataSet();//...dsProducts數y據YCacheDependency fileDepends = new CacheDependency(Server.MapPath("Northwind.xml"));Cache.Insert("dsProducts", dsProducts, fileDepends);

      2、其他快取項目依賴:
顯示行號 複製代碼 ?
  1. object cacheData;string[] fileDependsArray = { Server.MapPath("Northwind.xml") };string[] cacheDependsArray = { "Depend0", "Depend1", "Depend2" };CacheDependency cacheDepends = new CacheDependency(fileDependsArray, cacheDependsArray);Cache.Insert("cacheName", cacheData, cacheDepends);

         3、到期時間設定:

         AbsoluteExpiration可以設定緩衝的絕對到期的時間,如設定30分鐘後到期:

顯示行號 複製代碼 ?
  1. Cache.Insert("cacheName ", "cacheValue", null, DateTime.Now.AddMinutes(30), Cache.NoSlidingExpiration);

          NoSlidingExpiration可以設定相對的到期時間,如果緩衝在NoSlidingExpiration設定的時間內沒有被訪問,緩衝到期一定時間內沒有被訪問,緩衝到期,如果在一定時間內都有訪問,緩衝將不會到期。如在30分鐘有訪問Cache就不到期:

顯示行號 複製代碼 ?
  1. Cache.Insert("cacheName", "cacheValue", null, Cache.NoAbsoluteExpiration, TimeSpan.FromSeconds(30));

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.