IM/backend/IM_API/Interface/Services/ICacheService.cs
2026-02-12 21:59:08 +08:00

50 lines
1.6 KiB
C#

using IM_API.Models;
namespace IM_API.Interface.Services
{
public interface ICacheService
{
/// <summary>
/// 设置缓存
/// </summary>
/// <typeparam name="T">缓存对象类型</typeparam>
/// <param name="key">缓存索引值</param>
/// <param name="value">要缓存的对象</param>
/// <param name="expiration">过期时间</param>
/// <returns></returns>
Task SetAsync<T>(string key, T value, TimeSpan? expiration = null);
/// <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 RemoveAsync(string key);
/// <summary>
/// 设置用户缓存
/// </summary>
/// <param name="user"></param>
/// <returns></returns>
Task SetUserCacheAsync(User user);
/// <summary>
/// 通过用户名获取用户缓存
/// </summary>
/// <param name="username"></param>
/// <returns></returns>
Task<User?> GetUserCacheAsync(string username);
/// <summary>
/// 删除用户缓存
/// </summary>
/// <param name="id"></param>
/// <param name="username"></param>
/// <returns></returns>
Task RemoveUserCacheAsync(string username);
}
}