using Microsoft.Extensions.Caching.Memory; using System; namespace ZR.Common { public class CacheHelper { public static MemoryCache Cache { get; set; } static CacheHelper() { Cache = new MemoryCache(new MemoryCacheOptions { //SizeLimit = 1024 }); } /// /// 获取缓存 /// /// /// /// public static T GetCache(string key) where T : class { if (key == null) throw new ArgumentNullException(nameof(key)); //return Cache.Get(key) as T; //或者 return Cache.Get(key); } /// /// 获取缓存 /// /// /// public static object GetCache(string CacheKey) { return Cache.Get(CacheKey); } public static object Get(string CacheKey) { return Cache.Get(CacheKey); } /// /// 设置缓存,永久缓存 /// /// key /// 值 public static object SetCache(string CacheKey, object objObject) { return Cache.Set(CacheKey, objObject); } /// /// 设置缓存 /// /// key /// 值 /// 过期时间(分钟) public static object SetCache(string CacheKey, object objObject, int Timeout) { return Cache.Set(CacheKey, objObject, DateTime.Now.AddMinutes(Timeout)); } /// /// 设置缓存(秒) /// /// key /// 值 /// 过期时间(秒) public static void SetCaches(string CacheKey, object objObject, int Timeout) { Cache.Set(CacheKey, objObject, DateTime.Now.AddSeconds(Timeout)); } /// /// 设置缓存 /// /// key /// 值 /// 过期时间 /// 过期时间间隔 public static object SetCache(string CacheKey, object objObject, DateTime absoluteExpiration, TimeSpan slidingExpiration) { return Cache.Set(CacheKey, objObject, absoluteExpiration); } /// /// 设定绝对的过期时间 /// /// /// /// 超过多少秒后过期 public static void SetCacheDateTime(string CacheKey, object objObject, long Seconds) { Cache.Set(CacheKey, objObject, DateTime.Now.AddSeconds(Seconds)); } /// /// 删除缓存 /// /// key public static void Remove(string key) { Cache.Remove(key); } } }