LFlow/LFlow.Cache/Interface/ISelfCache.cs

60 lines
2.0 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;
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();
}
}