60 lines
2.0 KiB
C#
60 lines
2.0 KiB
C#
|
|
using Microsoft.Extensions.Caching.Memory;
|
|||
|
|
|
|||
|
|
namespace LFlow.Cache.Interface
|
|||
|
|
{
|
|||
|
|
/// <summary>
|
|||
|
|
/// 自身缓存接口
|
|||
|
|
/// 后续扩展,可分为内部缓存和外部缓存
|
|||
|
|
/// ISelfCache 只作为内部缓存接口
|
|||
|
|
/// 内外部缓存的区别在于,内部缓存是程序自身的缓存,外部缓存则可共享给其他系统,并暴露在外
|
|||
|
|
/// </summary>
|
|||
|
|
public interface ISelfCache
|
|||
|
|
{
|
|||
|
|
/// <summary>
|
|||
|
|
/// 缓存提供者,目前只支持MemoryCache,后续可扩展为使用接口,然后实现不同的缓存提供者
|
|||
|
|
/// </summary>
|
|||
|
|
protected MemoryCache CacheProvider { get; }
|
|||
|
|
/// <summary>
|
|||
|
|
/// 获取
|
|||
|
|
/// </summary>
|
|||
|
|
/// <typeparam name="T">类型</typeparam>
|
|||
|
|
/// <param name="key">键</param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
Task<T?> GetAsync<T>(string key);
|
|||
|
|
/// <summary>
|
|||
|
|
/// 获取
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="key">键</param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
Task<object?> GetAsync(string key);
|
|||
|
|
/// <summary>
|
|||
|
|
/// 存入一个值
|
|||
|
|
/// </summary>
|
|||
|
|
/// <typeparam name="T">数据类型</typeparam>
|
|||
|
|
/// <param name="key">键</param>
|
|||
|
|
/// <param name="data"></param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
Task SetAsync<T>(string key, T data);
|
|||
|
|
/// <summary>
|
|||
|
|
/// 存入一个值
|
|||
|
|
/// </summary>
|
|||
|
|
/// <typeparam name="T">数据类型</typeparam>
|
|||
|
|
/// <param name="key">键</param>
|
|||
|
|
/// <param name="data">数据</param>
|
|||
|
|
/// <param name="expiredTime">过期时间</param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
Task SetAsync<T>(string key, T data, TimeSpan expiredTime);
|
|||
|
|
/// <summary>
|
|||
|
|
/// 移除一个键与他的值
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="key"></param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
Task RemoveAsync(string key);
|
|||
|
|
/// <summary>
|
|||
|
|
/// 清空缓存
|
|||
|
|
/// </summary>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
Task ClearAsync();
|
|||
|
|
}
|
|||
|
|
}
|