88 lines
2.7 KiB
C#
88 lines
2.7 KiB
C#
using Microsoft.Extensions.Caching.Memory;
|
||
using System;
|
||
using System.Collections.Generic;
|
||
using System.Text;
|
||
|
||
namespace Mini.Common
|
||
{
|
||
public class CacheHelper
|
||
{
|
||
public static IMemoryCache _memoryCache = new MemoryCache(new MemoryCacheOptions());
|
||
/// <summary>
|
||
/// 缓存绝对过期时间
|
||
/// </summary>
|
||
///<param name="key">Cache键值</param>
|
||
///<param name="value">给Cache[key]赋的值</param>
|
||
///<param name="minute">minute分钟后绝对过期</param>
|
||
public static void CacheInsertAddMinutes(string key, object value, int minute)
|
||
{
|
||
if (value == null) return;
|
||
_memoryCache.Set(key, value, new MemoryCacheEntryOptions()
|
||
.SetAbsoluteExpiration(TimeSpan.FromMinutes(minute)));
|
||
}
|
||
|
||
|
||
/// <summary>
|
||
/// 缓存相对过期,最后一次访问后minute分钟后过期
|
||
/// </summary>
|
||
///<param name="key">Cache键值</param>
|
||
///<param name="value">给Cache[key]赋的值</param>
|
||
///<param name="minute">滑动过期分钟</param>
|
||
public static void CacheInsertFromMinutes(string key, object value, int minute)
|
||
{
|
||
if (value == null) return;
|
||
_memoryCache.Set(key, value, new MemoryCacheEntryOptions()
|
||
.SetSlidingExpiration(TimeSpan.FromMinutes(minute)));
|
||
}
|
||
|
||
|
||
/// <summary>
|
||
///以key键值,把value赋给Cache[key].如果不主动清空,会一直保存在内存中.
|
||
/// </summary>
|
||
///<param name="key">Cache键值</param>
|
||
///<param name="value">给Cache[key]赋的值</param>
|
||
public static void Set(string key, object value)
|
||
{
|
||
_memoryCache.Set(key, value);
|
||
}
|
||
|
||
/// <summary>
|
||
///清除Cache[key]的值
|
||
/// </summary>
|
||
///<param name="key"></param>
|
||
public static void Remove(string key)
|
||
{
|
||
_memoryCache.Remove(key);
|
||
}
|
||
|
||
/// <summary>
|
||
///根据key值,返回Cache[key]的值
|
||
/// </summary>
|
||
///<param name="key"></param>
|
||
public static object CacheValue(string key)
|
||
{
|
||
return _memoryCache.Get(key);
|
||
}
|
||
|
||
/// <summary>
|
||
/// 获取缓存
|
||
/// </summary>
|
||
/// <typeparam name="T">类型</typeparam>
|
||
/// <param name="key">Key</param>
|
||
/// <returns></returns>
|
||
public static T Get<T>(string key)
|
||
{
|
||
try
|
||
{
|
||
T t = (T)_memoryCache.Get<T>(key);
|
||
return t;
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
throw ex;
|
||
}
|
||
}
|
||
|
||
}
|
||
}
|