using System; using System.Collections.Generic; using System.Threading.Tasks; using StackExchange.Redis; namespace CoreCms.Net.Caching.AutoMate.RedisCache { /// /// Redis缓存接口 /// public interface IRedisOperationRepository { /// /// 延长锁(续约) /// /// /// /// /// bool LockExtend(string key, string value, TimeSpan cacheTime); /// /// 延长锁(续约) /// /// /// /// /// Task LockExtendAsync(string key, string value, TimeSpan cacheTime); /// /// 释放锁 /// /// /// /// bool LockRelease(string key, string value); /// /// 释放锁 /// /// /// /// Task LockReleaseAsync(string key, string value); /// /// 获取锁 /// /// /// /// /// public bool LockTake(string key, string value, TimeSpan cacheTime); /// /// 获取锁 /// /// /// /// /// public Task LockTakeAsync(string key, string value, TimeSpan cacheTime); /// /// 获取值 /// /// /// Task Get(string key); /// /// 获取一个值 /// /// /// RedisValue StringGet(string key); /// /// 搜索获取匹配Key /// /// /// List SearchKey(string pattern); /// /// 获取值,并序列化 /// /// /// /// Task Get(string key); /// /// 获取一个值 /// /// /// /// /// //保存 Task StringSetAsync(string key, string value, TimeSpan cacheTime); /// /// 获取一个值 /// /// /// /// /// bool StringSet(string key, string value, TimeSpan cacheTime); /// /// 获取一个值 /// /// /// /// bool StringSet(string key, string value); /// /// 获取一个值 /// /// /// /// bool StringSet(string key, RedisValue value); /// /// 获取一个值 /// /// /// /// /// bool StringSet(string key, RedisValue value, TimeSpan cacheTime); /// /// 设置一个缓存 /// /// /// /// /// Task SetAsync(string key, object value, TimeSpan cacheTime); /// /// Increment 递增 /// /// /// /// Task StringIncrement(string key, long value=1); /// /// 判断是否存在 /// /// /// Task KeyExistsAsync(string key); /// /// 判断是否存在 /// /// /// bool KeyExists(string key); /// /// 获取键 过期时间 /// /// /// Task KeyTime(string key); /// /// 删除异步 /// /// /// Task KeyDeleteAsync(string key); /// /// 删除key /// /// void KeyDelete(string key); /// /// 模糊删除 /// /// void LikeRemove(string pattern); /// /// 模糊删除异步 /// /// /// Task LikeRemoveAsync(string pattern); /// /// 全部清除 /// /// Task Clear(); /// /// 根据key获取RedisValue /// /// /// Task ListRangeAsync(string redisKey); /// /// 在列表头部插入值。如果键不存在,先创建再插入值 /// /// /// /// Task ListLeftPushAsync(string redisKey, string redisValue); /// /// 在列表尾部插入值。如果键不存在,先创建再插入值 /// /// /// /// Task ListRightPushAsync(string redisKey, string redisValue); /// /// 在列表尾部插入数组集合。如果键不存在,先创建再插入值 /// /// /// /// Task ListRightPushAsync(string redisKey, IEnumerable redisValue); /// /// 移除并返回存储在该键列表的第一个元素 反序列化 /// /// /// /// Task ListLeftPopAsync(string redisKey) where T : class; /// /// 移除并返回存储在该键列表的最后一个元素 反序列化 /// /// /// /// Task ListRightPopAsync(string redisKey) where T : class; /// /// 移除并返回存储在该键列表的第一个元素 /// /// /// Task ListLeftPopAsync(string redisKey); /// /// 移除并返回存储在该键列表的最后一个元素 /// /// /// Task ListRightPopAsync(string redisKey); /// /// 列表长度 /// /// /// Task ListLengthAsync(string redisKey); /// /// 返回在该列表上键所对应的元素 /// /// /// /// Task> ListRangeAsync(string redisKey, int db = -1); /// /// 根据索引获取指定位置数据 /// /// /// /// /// Task> ListRangeAsync(string redisKey, int start, int stop); /// /// 删除List中的元素 并返回删除的个数 /// /// /// /// /// Task ListDelRangeAsync(string redisKey, string redisValue, long type = 0); /// /// 清空List /// /// /// Task ListClearAsync(string redisKey); /// /// 有序集合/定时任务延迟队列用的多 /// /// key /// 元素 /// 分数 Task SortedSetAddAsync(string redisKey, string redisValue, double score); /// /// 插入zset /// /// key /// 消息 /// 延迟执行时间 /// Task SortedSetAddAsync(string key, string msg, DateTime time); /// /// 返回有序集合中指定成员的索引 /// /// /// /// Task SortedSetRankAsync(string key, string value); /// /// 返回有序集合中的分数 /// /// /// /// Task SortedSetScoreAsync(string key, string value); /// /// 返回有序集合中的分数 /// /// /// /// double? SortedSetScore(string key, string value); /// /// 返回有序列表里的数据 /// /// RedisKey /// 0 是第一个 /// 最大分数值 /// Task> SortedSetRangeByRankAsync(string redisKey, int start, int stop); /// /// 移出序列表里的指定范围数量 /// /// RedisKey /// 0 是第一个 /// 最大分数值 /// Task SortedSetRemoveRangeByRankAsync(string redisKey, int start, int stop); /// /// 返回有序列表里的指定范围数量 /// /// RedisKey /// 0 是第一个 /// 最大分数值 /// Task SortedSetLengthAsync(string redisKey, long min, long max); } }