2025-04-23 09:19:29 +08:00
|
|
|
|
using System;
|
2025-06-18 14:38:33 +08:00
|
|
|
|
using StackExchange.Redis;
|
2025-04-23 09:19:29 +08:00
|
|
|
|
|
|
|
|
|
|
namespace Infrastructure.Cache
|
|
|
|
|
|
{
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 缓存接口
|
|
|
|
|
|
/// </summary>
|
2026-01-09 08:46:31 +08:00
|
|
|
|
public abstract class ICacheContext : IDisposable
|
2025-04-23 09:19:29 +08:00
|
|
|
|
{
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 获取缓存项
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <typeparam name="T">缓存对象类型</typeparam>
|
|
|
|
|
|
/// <param name="key">键</param>
|
|
|
|
|
|
/// <returns>缓存对象</returns>
|
|
|
|
|
|
public abstract T Get<T>(string key);
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 设置缓存项
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <typeparam name="T">缓存对象类型</typeparam>
|
|
|
|
|
|
/// <param name="key">键</param>
|
|
|
|
|
|
/// <param name="t">缓存对象</param>
|
|
|
|
|
|
/// <returns>true成功,false失败</returns>
|
|
|
|
|
|
public abstract bool Set<T>(string key, T t, DateTime expire);
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 移除一个缓存项
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="key">缓存项key</param>
|
|
|
|
|
|
/// <returns>true成功,false失败</returns>
|
|
|
|
|
|
public abstract bool Remove(string key);
|
|
|
|
|
|
|
2025-06-18 14:38:33 +08:00
|
|
|
|
public abstract Task<T> Lock<T>(string id, Func<string, Task<T>> func, string key = "hc");
|
|
|
|
|
|
|
2026-01-09 08:46:31 +08:00
|
|
|
|
public virtual void Dispose()
|
|
|
|
|
|
{
|
|
|
|
|
|
// 默认实现,派生类可以重写
|
|
|
|
|
|
}
|
2025-04-23 09:19:29 +08:00
|
|
|
|
}
|
|
|
|
|
|
}
|