.net 服务端缓存 Cache/CacheHelper

2021-05-03 20:26

阅读:443

标签:none   object   单位   default   type   returns   addm   expires   nta   

 

服务端缓存公共类

/// 
    /// 公共缓存类
    /// 
    public static class CacheHelper
    {
        private static ObjectCache cache = MemoryCache.Default;

        /// 
        /// 查询缓存是否存在
        /// 
        /// 缓存键
        /// 是否存在
        public static bool ExistsCache(string key)
        {
            return cache.Contains(key);
        }

        /// 
        /// 根据缓存键移除缓存对象
        /// 
        /// 对象类型
        /// 缓存键
        public static void RemoveCache(string key)
        {
            if (!cache.Contains(key)) return;

            cache.Remove(key);
        }

        /// 
        /// 设置缓存对象
        /// 
        /// 对象类型
        /// 缓存键
        /// 缓存对象
        /// 过期时间(单位:分钟)
        public static void SetCache(string key, T obj, double expires = 20) where T : class
        {
            CacheItemPolicy policy = new CacheItemPolicy()
            {
                AbsoluteExpiration = DateTimeOffset.Now.AddMinutes(expires)
            };

            cache.Set(key, obj, policy);
        }

        /// 
        /// 根据缓存键获取缓存对象
        /// 
        /// 对象类型
        /// 缓存键
        /// 缓存对象
        public static T GetCache(string key) where T : class
        {
            if (!cache.Contains(key)) return null;
            var item = cache.GetCacheItem(key);
            if (item != null)
            {
                return item.Value as T;
            }
            return null;
        }

        /// 
        /// 获取缓存对象,如果不存在,则重新设置
        /// 
        /// 对象类型
        /// 缓存键
        /// 缓存委托
        /// 过期时间(单位:分钟)
        /// 缓存对象
        public static T GetCache(string key, Func func, double expires = 20) where T : class
        {
            if (!cache.Contains(key))
            {
                CacheItemPolicy policy = new CacheItemPolicy()
                {
                    AbsoluteExpiration = DateTimeOffset.Now.AddMinutes(expires)
                };

                T obj = null;

                if (func != null)
                {
                    obj = func();

                    if (obj != null)
                    {
                        cache.Set(key, obj, policy);
                    }
                }

                return obj;
            }
            else { return cache.GetCacheItem(key).Value as T; };
        }
    }

 

.net 服务端缓存 Cache/CacheHelper

标签:none   object   单位   default   type   returns   addm   expires   nta   

原文地址:https://www.cnblogs.com/jiangqw/p/12121245.html


评论


亲,登录后才可以留言!