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();
}
}
}