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.

61 lines
1.8 KiB
C#

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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