using Admin.Core.Common;
using StackExchange.Redis;
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
namespace Admin.Core.Extensions
{
///
/// Redis缓存接口
///
public interface IRedisBasketRepository
{
///
/// 获取服务基础信息
///
RedisBaseView GetBaseInfo();
///
/// 缓存监控
///
List GetAllKes();
///
/// 节点状态
///
///
List GetPointStatus();
///
/// 获取 Reids 缓存值
///
///
///
Task GetValue(string key);
///
/// 获取值,并序列化
///
///
///
///
Task Get(string key);
///
/// 保存
///
///
///
/// 缓存过期时间,单位:分钟
///
Task SetStr(string key, string value, int timeSpan = 0);
///
/// 保存-永不过期
///
///
///
/// 缓存过期时间,单位:分钟
///
Task SetStrL(string key, string value);
///
/// 保存
///
///
///
/// 缓存过期时间,单位:分钟
///
Task SetObj(string key, object value, int timeSpan = 0);
///
/// 保存-永不过期
///
///
///
/// 缓存过期时间,单位:分钟
///
Task SetObjL(string key, object value);
///
/// 判断是否存在
///
///
///
Task Exist(string key);
///
/// 移除某一个缓存值
///
///
///
Task Remove(string key);
///
/// 全部清除
///
///
Task Clear();
///
/// 根据key获取RedisValue
///
///
///
///
Task ListRangeAsync(string redisKey);
///
/// 在列表头部插入值。如果键不存在,先创建再插入值
///
///
///
///
Task ListLeftPushAsync(string redisKey, string redisValue, int db = -1);
///
/// 在列表尾部插入值。如果键不存在,先创建再插入值
///
///
///
///
Task ListRightPushAsync(string redisKey, string redisValue, int db = -1);
///
/// 在列表尾部插入数组集合。如果键不存在,先创建再插入值
///
///
///
///
Task ListRightPushAsync(string redisKey, IEnumerable redisValue, int db = -1);
///
/// 移除并返回存储在该键列表的第一个元素 反序列化
///
///
///
Task ListLeftPopAsync(string redisKey, int db = -1) where T : class;
///
/// 移除并返回存储在该键列表的最后一个元素 反序列化
/// 只能是对象集合
///
///
///
Task ListRightPopAsync(string redisKey, int db = -1) where T : class;
///
/// 移除并返回存储在该键列表的第一个元素
///
///
///
///
Task ListLeftPopAsync(string redisKey, int db = -1);
///
/// 移除并返回存储在该键列表的最后一个元素
///
///
///
///
///
Task ListRightPopAsync(string redisKey, int db = -1);
///
/// 列表长度
///
///
///
///
Task ListLengthAsync(string redisKey, int db = -1);
///
/// 返回在该列表上键所对应的元素
///
///
///
Task> ListRangeAsync(string redisKey, int db = -1);
///
/// 根据索引获取指定位置数据
///
///
///
///
///
///
Task> ListRangeAsync(string redisKey, int start, int stop, int db = -1);
///
/// 删除List中的元素 并返回删除的个数
///
/// key
/// 元素
/// 大于零 : 从表头开始向表尾搜索,小于零 : 从表尾开始向表头搜索,等于零:移除表中所有与 VALUE 相等的值
///
///
Task ListDelRangeAsync(string redisKey, string redisValue, long type = 0, int db = -1);
///
/// 清空List
///
///
///
Task ListClearAsync(string redisKey, int db = -1);
}
}