using Microsoft.Extensions.Caching.Memory; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace HuanMeng.DotNetCore.CacheHelper { /// /// 内存缓存帮助类 /// public class MemoryCacheHelper { public static MemoryCache cache = new MemoryCache(new MemoryCacheOptions()); /// /// 获取缓存 /// /// /// /// public static T? GetCache(string cacheName) where T : class, new() { return cache.TryGetValue(cacheName, out var value) ? value as T : null; } /// /// 设置缓存 /// /// /// /// 单位秒,默认1小时 public static void SetCache(string cacheName, object val, int cacheTime = 21000) { //数据量渐渐大了,每次因为很多都是同时缓存 所以在这里分流一下 if (cacheTime == 21000) cacheTime = new Random().Next(21000, 43200); cache.Set(cacheName, val, TimeSpan.FromSeconds(cacheTime)); } /// /// 删除缓存 /// /// public static void DelCache(string? cacheName = null) { if (!string.IsNullOrEmpty(cacheName)) cache.Remove(cacheName); else cache.Dispose(); } } }