程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> c#緩存介紹

c#緩存介紹

編輯:C#入門知識

緩存主要是為了提高數據的讀取速度。因為服務器和應用客戶端之間存在著流量的瓶頸,所以讀取大容量數據時,使用緩存來直接為客戶端服務,可以減少客戶端與服務器端的數據交互,從而大大提高程序的性能。

本章從緩存所在的命名空間“System.Web.Caching”開始,詳細介紹框架提供的緩存類和操作方法,主要涉及簡單數據的緩存、數據緩存依賴和數據庫緩存依賴三個技術要點,最後演示一個完全使用緩存實現數據讀取的實例。講解流程如圖16-1所示。

圖16-1  緩存命名空間的講解流程

16.1  System.Web.Caching簡介

本節從緩存命名空間的總體簡介和組成結構入手,從整體上對System.Web.Caching進行概述。

16.1.1  System.Web.Caching概述

System.Web.Caching是用來管理緩存的命名空間。緩存就是將服務器端的數據暫時保存在客戶端,方便用戶的讀取。緩存命名空間的父級空間是“System.Web”,由此可以看出,緩存通常用於Web網站的開發,包括在B/S項目中的開發。緩存的設計主要是考慮到網絡帶寬可能會延緩數據的提交和回發,如果將數據保存在客戶端,用戶可以直接從客戶端讀取數據,這樣數據就是從本地提取的,不會再受網絡的影響。

System.Web.Caching命名空間提供與緩存有關的所有操作類,具體包括哪些類將在下一節詳細介紹。

16.1.2  System.Web.Caching命名空間內的類組成

緩存命名空間主要提供三種操作:緩存數據對象、對象的緩存依賴和數據庫的緩存依賴。其中緩存任何對象都使用一個類Cache,但當緩存發生改變時,普通對象和數據庫對象的依賴處理不同。

圖16-2羅列的是在三層結構中緩存的部署情況。兩個依賴類CacheDependency和SqlCache Dependency主要更改發生變化的緩存數據,起到通知的作用。當數據沒有被緩存時,使用Cache類進行添加。

下面根據圖16-2的部署,來介紹圖中使用的緩存類。這些類的說明如表16-1所示。

 

圖16-2  三層結構中緩存的部署圖

表16-1  緩存命名空間中的類及其說明

   

   

Cache

對緩存對象的編輯類,其操作包括緩存的增、刪、改

CacheDependency

基本緩存對象的依賴,當基本對象發生變化時,更新緩存內容

SqlCacheDependency

數據庫緩存對象的依賴,當數據庫中的數據變化時,更新緩存內容

16.2  管理緩存的類:Cache類

Cache類用來存儲數據對象,並提供方法對這些對象進行編輯。本節主要介紹Cache類包含的方法,以及如何使用這些方法實現數據對象的緩存。

16.2.1  功能說明

Cache類屬於字典類,其根據一定的規則存儲用戶需要的數據,這些數據的類型不受限制,可以是字符串、數組、數據表、Dataset和哈希表等。

使用Cache類的優點是當緩存的數據發生變化時,Cache類會讓數據失效,並實現緩存數據的重新添加,然後通知應用程序,報告緩存的及時更新。

16.2.2  語法定義

Cache類的語法定義如下:

public sealed class Cache : IEnumerable

通過其定義可以發現,Cache類是“sealed”定義的類,表示此類被密封,不能被繼承。同時Cache類還繼承了IEnumerable接口,表示允許對集合中的數據進行枚舉操作。

緩存的生命周期隨著應用程序域的活動結束而終止,也就是說只要應用程序域依然處於活動狀態,緩存就會一直保持,因為每個應用程序域都會創建一個緩存實例。此實例的信息通過HttpContext對象的Cache屬性或Page對象的Cache屬性獲取。

下面的代碼演示如何將數組數據添加到緩存中:

ArrayList myarray = new ArrayList();        //創建數組數據

myarray.Add("1.學習園地");

myarray.Add("2.交流論壇");

myarray.Add("3.幫助");

Cache.Add("Category", myarray);        //將數組添加到緩存中

16.2.3  方法詳解

Cache類的方法主要提供對緩存數據的編輯操作,如增、刪、改等。其中最常用的方法及其說明如表16-2所示。

表16-2  Cache類的主要方法及其說明

   

   

Add

將數據添加到Cache對象

Insert

Cache中插入數據項,可用於修改已經存在的數據緩存項

Remove

移除Cache對象中的緩存數據項

Get

Cache對象中獲取指定的數據項,注意返回的是Object類型,需要進行類型轉換

GetType

Cache對象中獲取數據項的類型,判斷數據類型後,方便進行轉換

GetEnumerator

循環訪問Cache對象中的緩存數據項。注意其返回類型是“IDictionaryEnumerator

技巧:要想修改緩存數據,只需要重新為緩存賦值即可。

最需要注意的是Add方法,其使用語法如下:

public Object Add (

     string key,

     Object value,

     CacheDependency dependencies,

     DateTime absoluteExpiration,

     TimeSpan slidingExpiration,

     CacheItemPriority priority,

     CacheItemRemovedCallback onRemoveCallback

)

在使用Add方法時,以上7個參數是必需的,其代表意義如下:

— 參數“key”代表緩存數據項的鍵值,必須是唯一的。

— 參數“value”代表緩存數據的內容,可以是任意類型。

— 參數“dependencies”表示緩存的依賴項,也就是此項的更改意味著緩存內容已經過期。如果沒有依賴項,可將此值設置為NULL。

— 參數“absoluteExpiration”是日期型數據,表示緩存過期的時間,.NET 2.0提供的緩存在過期後是可以使用的,能使用多長時間,就看這

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved