using System; using System.Collections.Generic; using System.Linq; using System.Web; namespace Admin.Helper { /// <summary> /// .net 本身自带的cache相关方法 /// </summary> public static class CacheHelper { /// <summary> /// fileds /// </summary> private static System.Web.Caching.Cache ObjCache = System.Web.HttpRuntime.Cache; #region Exist方法 /// <summary> /// 判断指定Key的缓存是否存在 /// </summary> /// <param name="Key"></param> /// <returns></returns> public static bool Exist(string Key) { if (ObjCache[Key] == null) { return false; } return true; } #endregion #region Get方法 /// <summary> /// 获得指定Key的缓存对象 /// </summary> /// <param name="Key"></param> /// <returns></returns> public static Object Get(string Key) { object objkey = null; if (ObjCache[Key] != null) { objkey = ObjCache.Get(Key); } return objkey; } #endregion #region Set方法 /// <summary> /// 设置缓存 /// </summary> /// <param name="Key">Cache Key</param> /// <param name="expiry">缓存时间</param> /// <param name="obj">缓存对象</param> public static void Set(string Key, DateTime expiry, object obj) { if (ObjCache[Key] != null) { ObjCache.Remove(Key); } ObjCache.Insert(Key, obj, null, expiry, TimeSpan.Zero); } /// <summary> /// 设置缓存 /// </summary> /// <param name="Key">Cache Key</param> /// <param name="min">缓存时间【分钟】</param> /// <param name="obj">缓存对象</param> public static void Set(string Key, int min, object obj) { double douNum = double.Parse(min.ToString()); Set(Key, DateTime.Now.AddMinutes(douNum), obj); } #endregion #region Del方法 /// <summary> /// 删除指定Key的缓存 /// </summary> /// <param name="Key"></param> public static void Del(string Key) { if (ObjCache[Key] != null) { ObjCache.Remove(Key); } } #endregion #region 其他 /// <summary> /// 获取缓存中的项数 /// </summary> public static int Count { get { return ObjCache.Count; } } /// <summary> /// 获取可用于缓存的千字节数 /// </summary> public static long PrivateBytes { get { return ObjCache.EffectivePrivateBytesLimit; } } #endregion } }
<pre code_snippet_id="155522" snippet_file_name="blog_20140114_2_3856905" name="code" class="csharp"> 使用方法如下: /// <summary> /// 获取产品详情 /// </summary> /// <param name="proId"></param> /// <returns></returns> public static ProductDto GetProduct(string proId) { var key = "_ProductId" + proId; //通过key找到缓存的对象 var cache = Helper.CacheHelper.Get(key); if (cache != null) { return (ProductDto)cache; } var pro = ServiceLocator.Create<IProductService>().Get(proId); if (pro == null) return new ProductDto(); Helper.CacheHelper.Set(key, DateTime.Now.AddHours(8), pro); return pro; }