using System; using System.Collections; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Web; using System.Web.Caching; namespace System.CRM.Common { /// <summary> /// 缓存操作助手类 /// </summary> public class CacheHelper { /// <summary> /// 获取数据缓存 /// </summary> /// <param name="key">Cache的Key值</param> public static object GetCache(string key) { return HttpRuntime.Cache.Get(key); } /// <summary> /// 设置数据缓存 /// </summary> /// <param name="key">Cache的Key值</param> /// <param name="value">Cache的Value值</param> public static void SetCache(string key, object value) { HttpRuntime.Cache.Insert(key, value); } /// <summary> /// 设置数据缓存 /// </summary> /// <param name="key">Cache的Key值</param> /// <param name="value">Cache的Value值</param> /// <param name="timeout">最后一次访问Cache超过该时间间隔,则该Cache会被移除</param> public static void SetCache(string key, object value, TimeSpan timeout) { Cache objCache = HttpRuntime.Cache; objCache.Insert(key, value, null, DateTime.MaxValue, timeout, CacheItemPriority.NotRemovable, null); } /// <summary> /// 设置数据缓存 /// </summary> /// <param name="key">Cache的Key值</param> /// <param name="value">Cache的Value值</param> /// <param name="absolute">超时时间(单位:天)</param> /// <param name="timeout">最后一次访问Cache超过该时间间隔,则该Cache会被移除</param> public static void SetCache(string key, object value, double absolute, TimeSpan timeout) { Cache objCache = HttpRuntime.Cache; objCache.Insert(key, value, null, DateTime.UtcNow.AddDays(absolute), timeout); } /// <summary> /// 移除指定数据缓存 /// </summary> /// <param name="key">Cache的Key值</param> public static void RemoveCache(string key) { HttpRuntime.Cache.Remove(key); } /// <summary> /// 移除全部缓存 /// </summary> public static void RemoveAllCache() { Cache cache = HttpRuntime.Cache; IDictionaryEnumerator ide = cache.GetEnumerator(); while (ide.MoveNext()) { cache.Remove(ide.Key.ToString()); } } } }