You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
|
|
using Microsoft.Extensions.Caching.Memory;
|
|
|
|
|
using System;
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
namespace Admin.Core.Common
|
|
|
|
|
{
|
|
|
|
|
public class CacheUtil : ICaching
|
|
|
|
|
{
|
|
|
|
|
//引用Microsoft.Extensions.Caching.Memory;这个和.net 还是不一样,没有了Httpruntime了
|
|
|
|
|
private readonly IMemoryCache _cache;
|
|
|
|
|
//还是通过构造函数的方法,获取
|
|
|
|
|
public CacheUtil(IMemoryCache cache)
|
|
|
|
|
{
|
|
|
|
|
_cache = cache;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 取缓存项,如果不存在则返回空
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <typeparam name="T"></typeparam>
|
|
|
|
|
/// <param name="cacheKey"></param>
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
public T Get<T>(string cacheKey)
|
|
|
|
|
{
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
return (T)_cache.Get(cacheKey);
|
|
|
|
|
}
|
|
|
|
|
catch
|
|
|
|
|
{
|
|
|
|
|
return default;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 使用键和值将某个缓存项插入缓存中,并指定基于时间的过期详细信息
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="cacheKey"></param>
|
|
|
|
|
/// <param name="cacheValue"></param>
|
|
|
|
|
/// <param name="timeSpan"></param>
|
|
|
|
|
public void Set(string cacheKey, object cacheValue, int timeSpan)
|
|
|
|
|
{
|
|
|
|
|
// 缓存过期时间:分钟
|
|
|
|
|
var cacheTimeOut = Appsettings.app(new string[] { "AppSettings", "CacheTimeOut" }).ObjToInt();
|
|
|
|
|
_cache.Set(cacheKey, cacheValue, TimeSpan.FromSeconds(timeSpan == 0 ? cacheTimeOut : timeSpan * 60));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 移除指定键的缓存项
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="key"></param>
|
|
|
|
|
public void Remove(string key)
|
|
|
|
|
{
|
|
|
|
|
_cache.Remove(key);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|