C#Cache缓存的封装类

it2022-05-05  156

  c#自带的缓存Cache是将缓存数据写在内存里面的,读取速度还是相当快的,也比较安全,由于是写在内存里面,一旦回收iis,Cache里面的缓存也会丢失。

  public class CacheHelper     {         /// <summary>         /// 创建缓存项的文件         /// </summary>         /// <param name="key">缓存Key</param>         /// <param name="obj">object对象</param>         public static void Insert(string key, object obj)         {             //创建缓存             HttpContext.Current.Cache.Insert(key, obj);         }         /// <summary>         /// 移除缓存项的文件         /// </summary>         /// <param name="key">缓存Key</param>         public static void Remove(string key)         {             //创建缓存             HttpContext.Current.Cache.Remove(key);         }         /// <summary>         /// 创建缓存项的文件依赖         /// </summary>         /// <param name="key">缓存Key</param>         /// <param name="obj">object对象</param>         /// <param name="fileName">文件绝对路径</param>         public static void Insert(string key, object obj, string fileName)         {             //创建缓存依赖项             CacheDependency dep = new CacheDependency(fileName);             //创建缓存             HttpContext.Current.Cache.Insert(key, obj, dep);         }

        /// <summary>         /// 创建缓存项过期         /// </summary>         /// <param name="key">缓存Key</param>         /// <param name="obj">object对象</param>         /// <param name="expires">过期时间(分钟)</param>         public static void Insert(string key, object obj, int expires)         {             HttpContext.Current.Cache.Insert(key, obj, null, Cache.NoAbsoluteExpiration, new TimeSpan(0, expires, 0));         }

        /// <summary>         /// 获取缓存对象         /// </summary>         /// <param name="key">缓存Key</param>         /// <returns>object对象</returns>         public static object Get(string key)         {             if (string.IsNullOrEmpty(key))             {                 return null;             }             return HttpContext.Current.Cache.Get(key);         }

        /// <summary>         /// 获取缓存对象         /// </summary>         /// <typeparam name="T">T对象</typeparam>         /// <param name="key">缓存Key</param>         /// <returns></returns>         public static T Get<T>(string key)         {             object obj = Get(key);             return obj == null ? default(T) : (T)obj;         }         /// <summary>         /// 获取有所缓存key         /// </summary>         public static List<string> GetKeyAll()         {             List<string> cacheKeys = new List<string>();             var cacheEnum = HttpContext.Current.Cache.GetEnumerator();             while (cacheEnum.MoveNext())             {                 cacheKeys.Add(cacheEnum.Key.ToString());             }             return cacheKeys;         }     }


最新回复(0)