缓存操作类

引入
using
System.Web.Caching;
 /*
       Key//缓存名
       Value//要缓存的对象
       Dependencies//依赖项
       AbsoluteExpiration//绝对过期时间
       SlidingExpiration//相对过期时间
       Priority//优先级
       CacheItemRemovedCallback //缓存过期引发事件
        */
    /// <summary>
    /// 缓存
    /// </summary>
    /// <typeparam name="T"></typeparam>
    public class CacheHelper<T>
    {
        /// <summary>
        /// 获取缓存数据
        /// </summary>
        /// <param name="cachekey"></param>
        /// <returns></returns>
        public static T GetCache(string cachekey)
        {
            return (T)HttpRuntime.Cache[cachekey];
        }
        /// <summary>
        /// 数据插入缓存(永不过期)
        /// </summary>
        /// <param name="cachekey"></param>
        /// <param name="data"></param>
        public static void SetCache(string cachekey, T data)
        {
            HttpRuntime.Cache.Insert(cachekey, data);
        }
        /// <summary>
        /// 数据插入缓存(依赖)
        /// </summary>
        /// <param name="cachekey"></param>
        /// <param name="data"></param>
        /// <param name="dependencies">对文件或者目录的依赖</param>
        public static void SetCache(string cachekey, T data, CacheDependency dependencies)    //依赖
        {
            HttpRuntime.Cache.Insert(cachekey, data, dependencies);
        }
        /// <summary>
        /// 数据插入缓存(绝对事件过期)
        /// </summary>
        /// <param name="cachekey"></param>
        /// <param name="data"></param>
        /// <param name="timeout"></param>
        public static void SetCache(string cachekey, T data, TimeSpan timeout)
        {
            HttpRuntime.Cache.Insert(cachekey, data, null, DateTime.MaxValue, timeout, CacheItemPriority.NotRemovable, null);
        }
        /// <summary>
        /// 设置缓存数据(绝对时间过期)
        /// </summary>
        /// <param name="cachekey"></param>
        /// <param name="objObject"></param>
        /// <param name="absoluteExpiration"></param>
        /// <param name="slidingExpiration"></param>
        public static void SetCache(string cachekey, T data, DateTime absoluteExpiration, TimeSpan slidingExpiration)
        {
            HttpRuntime.Cache.Insert(cachekey, data, null, absoluteExpiration, slidingExpiration);
        }
        /// <summary>
        /// 移除指定缓存数据
        /// </summary>
        /// <param name="cachekey"></param>
        public static void RemoveAllCache(string cachekey)
        {
            HttpRuntime.Cache.Remove(cachekey);
        }
        /// <summary>
        /// 移除全部缓存
        /// </summary>
        public static void RemoveAllCache()
        {
            var cache = HttpRuntime.Cache;
            var cacheEnum = cache.GetEnumerator();
            while (cacheEnum.MoveNext())
            {
                cache.Remove(cacheEnum.Key.ToString());
            }
        }

    }

 

posted @ 2016-03-21 09:42  鞍山老菜鸟  阅读(222)  评论(0编辑  收藏  举报