/// <summary> /// 获取缓存 /// </summary> /// <param name="key">缓存Key</param> /// <returns></returns> public static async Task <T> Get <T>(string key) where T : class { if (string.IsNullOrEmpty(key)) { throw new ArgumentNullException(nameof(key)); } switch (cacheProvider) { case Define.CACHEPROVIDER_REDIS: return(await BaseHelper.GetAsync <T>(key)); case Define.CACHEPROVIDER_MEMORY: return(MemoryCacheHelper.Get <T>(key)); default: return(MemoryCacheHelper.Get <T>(key)); } }
/// <summary> /// 不存在就插入 /// </summary> /// <param name="key">缓存Key</param> /// <param name="value">缓存Value</param> /// <param name="second">过期时间</param> /// <returns></returns> public static async Task <bool> SetNx(string key, object value, int second = 10) { bool result = false; switch (cacheProvider) { case Define.CACHEPROVIDER_REDIS: result = await BaseHelper.SetNxAsync(key, value); await BaseHelper.ExpireAsync(key, second); break; case Define.CACHEPROVIDER_MEMORY: if (MemoryCacheHelper.Exists(key)) { result = false; MemoryCacheHelper.Get(key); } else { result = true; MemoryCacheHelper.Set(key, value, TimeSpan.FromSeconds(second), true); } break; default: if (MemoryCacheHelper.Exists(key)) { result = false; MemoryCacheHelper.Get(key); } else { result = true; MemoryCacheHelper.Set(key, value, TimeSpan.FromSeconds(second), true); } break; } return(result); }