using StackExchange.Redis;
namespace Znyc.CloudCar.Caching
{
///
/// 缓存接口
///
public interface IRedisOperationRepository
{
///
/// 检查给定 key 是否存在
///
///
///
bool Exists(string key);
///
/// 检查给定 key 是否存在
///
/// 键
///
Task ExistsAsync(string key);
///
/// 获取指定 key 的值
///
/// 键
///
string Get(string key);
///
/// 获取指定 key 的值
///
/// byte[] 或其他类型
/// 键
///
T Get(string key);
///
/// 获取指定 key 的值
///
/// 键
///
Task GetAsync(string key);
///
/// 获取指定 key 的值
///
/// byte[] 或其他类型
/// 键
///
Task GetAsync(string key);
///
/// 设置指定 key 的值,所有写入参数object都支持string | byte[] | 数值 | 对象
///
/// 键
/// 值
///
bool Set(string key, object value);
///
/// 设置指定 key 的值,所有写入参数object都支持string | byte[] | 数值 | 对象
///
/// 键
/// 值
/// 有效期
///
bool Set(string key, object value, TimeSpan expire);
///
/// 设置指定 key 的值,所有写入参数object都支持string | byte[] | 数值 | 对象
///
/// 键
/// 值
///
Task SetAsync(string key, object value);
///
/// 设置指定 key 的值,所有写入参数object都支持string | byte[] | 数值 | 对象
///
/// 键
/// 值
/// 有效期
///
Task SetAsync(string key, object value, TimeSpan expire);
///
///
///
///
///
bool Del(string key);
///
///
///
///
///
Task DelAsync(string key);
///
/// 将 key 所储存的值加上给定的增量值(increment)
///
/// 键
///
Task IncrAsync(string key);
///
/// 将 key 所储存的值加上给定的增量值(increment)
///
/// 键
///
long Incr(string key);
#region Hash
///
/// 将哈希表 key 中的字段 field 的值设为 value
///
/// 键
/// 字段
/// 值
/// 如果字段是哈希表中的一个新建字段,并且值设置成功,返回true。如果哈希表中域字段已经存在且旧值已被新值覆盖,返回false。
bool HSet(string key, string filed, object value);
///
/// 将哈希表 key 中的字段 field 的值设为 value
///
/// 键
/// 字段
/// 值
/// 如果字段是哈希表中的一个新建字段,并且值设置成功,返回true。如果哈希表中域字段已经存在且旧值已被新值覆盖,返回false。
Task HSetAsync(string key, string filed, object value);
///
/// 获取在哈希表中指定 key 的所有字段和值
///
///
///
///
Task> HGetAllAsync(string key);
#endregion
#region Redis 有序集合(sorted set)
///
/// 向有序集合添加一个或多个成员,或者更新已存在成员的分数
///
///
///
///
Task ZAddAsync(string key, string member, double score);
///
/// 用于计算集合中元素的数量
///
///
///
Task ZCardAsync(string key);
///
/// 有序集合中对指定成员的分数加上增量 increment
///
///
///
///
///
Task ZIncrByAsync(string key, string member, double increment = 1);
///
/// 通过索引区间返回有序集合成指定区间内的成员
///
///
///
///
/// true倒序排列,false正序排列
///
Task> ZRemRangeByRankAsync(string key, long start, long stop, bool sortType = true);
///
/// 返回有序集中的成员和分数,通过索引,分数从高到低
///
///
///
///
///
Task> ZRevRangeWithScoresAsync(string key);
///
/// 删除
///
///
///
///
Task SortedSetRemoveAsync(string key, string member);
///
/// 数据转换
///
///
///
SortedSetEntry[] ConvertDictionaryToSortedSetEntry(IDictionary keyValues);
///
/// 数据转换字典
///
///
///
IDictionary ConvertSortedSetEntryToDictionary(SortedSetEntry[] setEntries);
#endregion
}
}