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 } }