今天我们来分享一个缓存的用法。非关系型数据库还有很多。。。。。

/// <summary>
    /// 缓存接口
    /// </summary>
public    interface ICache
    {
        void AddCache<T>(string cacheKey, T value);

        void AddCache<T>(string cacheKey, T value, DateTime expireTime);

        void RemoveCache(string cacheKey);

        void RemoveAllCache();

        T GetCache<T>(string cacheKey);
    }
做一个接口用于兼容不同的缓存平台。


public class MemoryCacheImp : ICache
    {
        public void AddCache<T>(string cacheKey, T value)
        {
            var cache = MemoryCache.Default;

            //默认10分钟过期
            cache.Set(cacheKey, value, DateTimeOffset.Now.AddMinutes(10));
        }

        public void AddCache<T>(string cacheKey, T value, DateTime expireTime)
        {
            var cache = MemoryCache.Default;

            var policy = new CacheItemPolicy
            {
                AbsoluteExpiration = expireTime
            };

            cache.Set(cacheKey, value, policy);
        }

        public T GetCache<T>(string cacheKey)
        {
            var cache = MemoryCache.Default;

            if (cache.Get(cacheKey) != null)
            {
                return (T)cache.Get(cacheKey);
            }
            else
            {
                return default(T);
            }
        }

        public void RemoveAllCache()
        {
          
        }

        public void RemoveCache(string cacheKey)
        {
            MemoryCache.Default.Remove(cacheKey);
        }
    }



代码很简单,但是在高级优化中是很重要的。

我们看到差距马上就出来了!