namespace JNPF.Common.Manager;
///
/// 缓存管理抽象.
///
public interface ICacheManager
{
///
/// 获取所有缓存关键字.
///
///
List GetAllCacheKeys();
///
/// 删除指定关键字缓存.
///
/// 键.
///
bool Del(string key);
///
/// 删除指定关键字缓存.
///
/// 键.
///
Task DelAsync(string key);
///
/// 删除指定关键字数组缓存.
///
/// 键.
///
Task DelAsync(string[] key);
///
/// 删除某特征关键字缓存.
///
/// 键.
///
Task DelByPatternAsync(string key);
///
/// 设置缓存.
///
/// 键.
/// 值.
///
bool Set(string key, object value);
///
/// 设置缓存.
///
/// 键.
/// 值.
/// 过期时间.
///
bool Set(string key, object value, TimeSpan timeSpan);
///
/// 设置缓存.
///
/// 键.
/// 值.
///
Task SetAsync(string key, object value);
///
/// 设置缓存.
///
/// 键.
/// 值.
/// 过期时间.
///
Task SetAsync(string key, object value, TimeSpan timeSpan);
///
/// 获取指定 key 的增量值.
///
/// 键.
/// 增量.
///
long Incrby(string key, long incrBy);
///
/// 获取指定 key 的增量值.
///
/// 键.
/// 增量.
///
Task IncrbyAsync(string key, long incrBy);
///
/// 获取缓存.
///
/// 键.
///
string Get(string key);
///
/// 获取缓存.
///
/// 键.
///
Task GetAsync(string key);
///
/// 获取缓存.
///
/// 对象.
/// 键.
///
T Get(string key);
///
/// 获取缓存.
///
/// 对象.
/// 键.
///
Task GetAsync(string key);
///
/// 获取缓存过期时间.
///
/// 键.
///
DateTime GetCacheOutTime(string key);
///
/// 检查给定 key 是否存在.
///
/// 键.
///
bool Exists(string key);
///
/// 异步检查给定 key 是否存在.
///
/// 键.
///
Task ExistsAsync(string key);
///
/// 只有在 key 不存在时设置 key 的值.
///
/// 键.
/// 值.
/// 有效期.
bool SetNx(string key, object value, TimeSpan expire);
///
/// 只有在 key 不存在时设置 key 的值.
///
/// 键.
/// 值.
bool SetNx(string key, object value);
}