本地缓冲封装

这几天在项目中经常用到缓存,干脆就对这个缓存做了一个简单的封装 ,今后直接那俩用就行了;

   public class SiteCache
    {
        #region 方法
        private static readonly Cache _cache;
        public static readonly int HourFactor;
        public static readonly int MinuteFactor;
        static SiteCache()
        {
            HourFactor = 1;//小时
            MinuteFactor = 1;//分钟
            _cache = HttpRuntime.Cache;
        }
        /// <summary>
        /// 获取缓存
        /// </summary>
        /// <param name="key"></param>
        /// <returns></returns>
        public static object GetCache(string key)
        {
            return _cache[key];
        }
        /// <summary>
        /// 实践“一键一值”存储方法,最普通的存储方法;
        /// </summary>
        /// <param name="key">主键(缓存名称)</param>
        /// <param name="obj">要插入缓存中的对象</param>
        /// <param name="dep"></param>
        /// <param name="time">缓存的时间</param>
        /// <param name="priority">优先权</param>
        public static void InsertDefault(string key, object obj, CacheDependency dep, DateTime time, CacheItemPriority priority)
        {
            if (obj != null)
            {
                _cache.Insert(key, obj, dep, time, TimeSpan.Zero, priority, null);
            }
        }
        /// <summary>
        /// 实践“一键一值”存储方法,按小时存缓存
        /// </summary>
        /// <param name="key">主键(缓存名称)</param>
        /// <param name="obj">要插入缓存中的对象</param>
        /// <param name="hourTime">时间(输入整数)</param>
        public static void InsertHour(string key, object obj, int hourTime)
        {
            InsertDefault(key, obj, null, DateTime.Now.AddHours((double)hourTime), CacheItemPriority.Default);
        }
        /// <summary>
        /// 实践“一键一值”存储方法,按分钟存缓存
        /// </summary>
        /// <param name="key"></param>
        /// <param name="obj"></param>
        /// <param name="minuteTime"></param>
        public static void InsertMinute(string key, object obj, int minuteTime)
        {
            InsertDefault(key, obj, null, DateTime.Now.AddMinutes((double)minuteTime), CacheItemPriority.Default);
        }
        /// <summary>
        /// 指定缓存销毁
        /// </summary>
        /// <param name="key">主键(缓存名称)</param>
        public static void Remove(string key)
        {
            _cache.Remove(key);
        }
        /// <summary>
        /// 销毁所有缓存
        /// </summary>
        public static void Clear()
        {
            IDictionaryEnumerator enumerator = _cache.GetEnumerator();
            while (enumerator.MoveNext())
            {
                _cache.Remove(enumerator.Key.ToString());
            }
        }
        /// <summary>
        /// 判断存储的"一键一值"值是否还存在(有没有过期失效或从来都未存储过)
        /// </summary>
        /// <param name="key"></param>
        /// <returns></returns>
        public static bool ExistCache(string key)
        {
            if (_cache[key] != null)
            {
                return true;
            }
            else
            {
                return false;
            }
        }
        #endregion
    }

posted @ 2012-11-10 09:11  plugin-loader  阅读(189)  评论(1编辑  收藏  举报