Mini.Crm/Mini.Common/CacheHelper.cs

88 lines
2.7 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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