using StackExchange.Redis; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Syc.Abp.Caching.Redis { public interface IRedisCacheProvide: ICacheProvide { #region String #region 同步方法 /// /// 保存单个key value /// /// Redis Key /// 保存的值 /// 过期时间 /// bool StringSet(string key, string value, TimeSpan? expiry = default(TimeSpan?)); /// /// 保存多个key value /// /// 键值对 /// bool StringSet(List> keyValues); /// /// 保存一个对象 /// /// /// /// /// /// bool StringSet(string key, T obj, TimeSpan? expiry = default(TimeSpan?)); /// /// 获取单个key的值 /// /// Redis Key /// string StringGet(string key); /// /// 获取多个Key /// /// Redis Key集合 /// RedisValue[] StringGet(List listKey); /// /// 获取一个key的对象 /// /// /// /// T StringGet(string key); /// /// 为数字增长val /// /// /// 可以为负 /// 增长后的值 double StringIncrement(string key, double val = 1); /// /// 为数字减少val /// /// /// 可以为负 /// 减少后的值 double StringDecrement(string key, double val = 1); #endregion 同步方法 #region 异步方法 /// /// 保存单个key value /// /// Redis Key /// 保存的值 /// 过期时间 /// Task StringSetAsync(string key, string value, TimeSpan? expiry = default(TimeSpan?)); /// /// 保存多个key value /// /// 键值对 /// Task StringSetAsync(List> keyValues); /// /// 保存一个对象 /// /// /// /// /// /// Task StringSetAsync(string key, T obj, TimeSpan? expiry = default(TimeSpan?)); /// /// 获取单个key的值 /// /// Redis Key /// Task StringGetAsync(string key); /// /// 获取多个Key /// /// Redis Key集合 /// Task StringGetAsync(List listKey); /// /// 获取一个key的对象 /// /// /// /// Task StringGetAsync(string key); /// /// 为数字增长val /// /// /// 可以为负 /// 增长后的值 Task StringIncrementAsync(string key, double val = 1); /// /// 为数字减少val /// /// /// 可以为负 /// 减少后的值 Task StringDecrementAsync(string key, double val = 1); #endregion 异步方法 #endregion String #region Hash #region 同步方法 /// /// 判断某个数据是否已经被缓存 /// /// /// /// bool HashExists(string key, string dataKey); /// /// 存储数据到hash表 /// /// /// /// /// /// bool HashSet(string key, string dataKey, T t); /// /// 移除hash中的某值 /// /// /// /// bool HashDelete(string key, string dataKey); /// /// 移除hash中的多个值 /// /// /// /// long HashDelete(string key, List dataKeys); /// /// 从hash表获取数据 /// /// /// /// /// T HashGet(string key, string dataKey); /// /// 为数字增长val /// /// /// /// 可以为负 /// 增长后的值 double HashIncrement(string key, string dataKey, double val = 1); /// /// 为数字减少val /// /// /// /// 可以为负 /// 减少后的值 double HashDecrement(string key, string dataKey, double val = 1); /// /// 获取hashkey所有Redis key /// /// /// /// List HashKeys(string key); #endregion 同步方法 #region 异步方法 /// /// 判断某个数据是否已经被缓存 /// /// /// /// Task HashExistsAsync(string key, string dataKey); /// /// 存储数据到hash表 /// /// /// /// /// /// Task HashSetAsync(string key, string dataKey, T t); /// /// 移除hash中的某值 /// /// /// /// Task HashDeleteAsync(string key, string dataKey); /// /// 移除hash中的多个值 /// /// /// /// Task HashDeleteAsync(string key, List dataKeys); /// /// 从hash表获取数据 /// /// /// /// /// Task HashGeAsync(string key, string dataKey); /// /// 为数字增长val /// /// /// /// 可以为负 /// 增长后的值 Task HashIncrementAsync(string key, string dataKey, double val = 1); /// /// 为数字减少val /// /// /// /// 可以为负 /// 减少后的值 Task HashDecrementAsync(string key, string dataKey, double val = 1); /// /// 获取hashkey所有Redis key /// /// /// /// Task> HashKeysAsync(string key); #endregion 异步方法 #endregion Hash #region List #region 同步方法 /// /// 移除指定ListId的内部List的值 /// /// /// void ListRemove(string key, T value); /// /// 获取指定key的List /// /// /// List ListRange(string key); /// /// 入队 /// /// /// void ListRightPush(string key, T value); /// /// 出队 /// /// /// /// T ListRightPop(string key); /// /// 入栈 /// /// /// /// void ListLeftPush(string key, T value); /// /// 出栈 /// /// /// /// T ListLeftPop(string key); /// /// 获取集合中的数量 /// /// /// long ListLength(string key); #endregion 同步方法 #region 异步方法 /// /// 移除指定ListId的内部List的值 /// /// /// Task ListRemoveAsync(string key, T value); /// /// 获取指定key的List /// /// /// Task> ListRangeAsync(string key); /// /// 入队 /// /// /// Task ListRightPushAsync(string key, T value); /// /// 出队 /// /// /// /// Task ListRightPopAsync(string key); /// /// 入栈 /// /// /// /// Task ListLeftPushAsync(string key, T value); /// /// 出栈 /// /// /// /// Task ListLeftPopAsync(string key); /// /// 获取集合中的数量 /// /// /// Task ListLengthAsync(string key); #endregion 异步方法 #endregion List #region SortedSet 有序集合 #region 同步方法 /// /// 添加 /// /// /// /// bool SortedSetAdd(string key, T value, double score); /// /// 删除 /// /// /// bool SortedSetRemove(string key, T value); /// /// 获取全部 /// /// /// List SortedSetRangeByRank(string key); /// /// 获取集合中的数量 /// /// /// long SortedSetLength(string key); #endregion 同步方法 #region 异步方法 /// /// 添加 /// /// /// /// Task SortedSetAddAsync(string key, T value, double score); /// /// 删除 /// /// /// Task SortedSetRemoveAsync(string key, T value); /// /// 获取全部 /// /// /// Task> SortedSetRangeByRankAsync(string key); /// /// 获取集合中的数量 /// /// /// Task SortedSetLengthAsync(string key); #endregion 异步方法 #endregion SortedSet 有序集合 #region key /// /// 删除单个key /// /// redis key /// 是否删除成功 bool KeyDelete(string key); /// /// 删除多个key /// /// rediskey /// 成功删除的个数 long KeyDelete(List keys); /// /// 判断key是否存储 /// /// redis key /// bool KeyExists(string key); /// /// 重新命名key /// /// 就的redis key /// 新的redis key /// bool KeyRename(string key, string newKey); /// /// 设置Key的时间 /// /// redis key /// /// bool KeyExpire(string key, TimeSpan? expiry = default(TimeSpan?)); #endregion key #region 发布订阅 /// /// Redis发布订阅 订阅 /// /// /// void Subscribe(string subChannel, Action handler = null); /// /// Redis发布订阅 发布 /// /// /// /// /// long Publish(string channel, T msg); /// /// Redis发布订阅 取消订阅 /// /// void Unsubscribe(string channel); /// /// Redis发布订阅 取消全部订阅 /// void UnsubscribeAll(); #endregion 发布订阅 } }