C#緩存主要是為了提高數據的讀取速度。因為服務器和應用客戶端之間存在著流量的瓶頸,所以讀取大容量數據時,使用緩存來直接為客戶端服務,可以減少客戶端與服務器端的數據交互,從而大大提高程序的性能。
以下為工作中經常用到的緩存操作公用類庫整理:
using System; using System.Collections; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Caching; using System.Web.Hosting; namespace ECS.Utility { ////// Caching 的摘要說明 /// public class Caching { ////// 獲取當前應用程序指定CacheKey的Cache值 /// /// ///y public static object GetCache(string CacheKey) { System.Web.Caching.Cache objCache = HttpRuntime.Cache; return objCache[CacheKey]; } /// /// 設置當前應用程序指定CacheKey的Cache值 /// /// /// public static void SetCache(string CacheKey, object objObject) { System.Web.Caching.Cache objCache = HttpRuntime.Cache; objCache.Insert(CacheKey, objObject); } ////// 設置當前應用程序指定CacheKey的Cache值 /// /// /// public static void SetCache(string CacheKey, object objObject, DateTime absoluteExpiration, TimeSpan slidingExpiration) { System.Web.Caching.Cache objCache = HttpRuntime.Cache; objCache.Insert(CacheKey, objObject, null, absoluteExpiration, slidingExpiration); } ////// 清除單一鍵緩存 /// /// public static void RemoveKeyCache(string CacheKey) { try { System.Web.Caching.Cache objCache = HttpRuntime.Cache; objCache.Remove(CacheKey); } catch { } } ////// 清除所有緩存 /// public static void RemoveAllCache() { System.Web.Caching.Cache _cache = HttpRuntime.Cache; IDictionaryEnumerator CacheEnum = _cache.GetEnumerator(); if (_cache.Count > 0) { ArrayList al = new ArrayList(); while (CacheEnum.MoveNext()) { al.Add(CacheEnum.Key); } foreach (string key in al) { _cache.Remove(key); } } } ////// 以列表形式返回已存在的所有緩存 /// ///public static ArrayList ShowAllCache() { ArrayList al = new ArrayList(); System.Web.Caching.Cache _cache = HttpRuntime.Cache; if (_cache.Count > 0) { IDictionaryEnumerator CacheEnum = _cache.GetEnumerator(); while (CacheEnum.MoveNext()) { al.Add(CacheEnum.Key); } } return al; } } }