/// <summary> /// 设置过期时间 /// </summary> /// <param name="key">键</param> /// <param name="min">过期时间,单位:分钟</param> /// <param name="folder">目录,默认根目录</param> /// <param name="db">库,默认读取配置文件</param> public static bool KeyExpire(string key, int min = 600, RedisFolderEnum folder = RedisFolderEnum.Root, RedisDBEnum db = RedisDBEnum.Default) { try { string fd = GetDescription(folder); return(Manager.GetDatabase(GetOperationDB(db)).KeyExpire(string.IsNullOrEmpty(fd) ? key : fd + ":" + key, DateTime.Now.AddMinutes(min))); } catch (Exception) { return(false); } }
/// <summary> /// 批量删除(根据score删除) /// </summary> /// <param name="key">键</param> /// <param name="start">开始</param> /// <param name="stop">结束</param> /// <param name="folder">目录,默认根目录</param> /// <param name="db">库,默认读取配置文件</param> /// <returns></returns> public static long SortedSetRemoveRangeByScore(string key, int start, int stop, RedisFolderEnum folder = RedisFolderEnum.Root, RedisDBEnum db = RedisDBEnum.Default) { string fd = GetDescription(folder); return(Manager.GetDatabase(GetOperationDB(db)).SortedSetRemoveRangeByScore(string.IsNullOrEmpty(fd) ? key : fd + ":" + key, start, stop)); }
/// <summary> /// 获取总数 /// </summary> /// <param name="key">键</param> /// <param name="folder">目录,默认根目录</param> /// <param name="db">库,默认读取配置文件</param> /// <returns></returns> public static long SortedSetLength(string key, RedisFolderEnum folder = RedisFolderEnum.Root, RedisDBEnum db = RedisDBEnum.Default) { string fd = GetDescription(folder); return(Manager.GetDatabase(GetOperationDB(db)).SortedSetLength(string.IsNullOrEmpty(fd) ? key : fd + ":" + key)); }
/// <summary> /// 获取对象 /// </summary> /// <typeparam name="T">类型</typeparam> /// <param name="key">键</param> /// <param name="folder">目录,默认根目录</param> /// <param name="db">库,默认读取配置文件</param> /// <returns></returns> public static T StringGet <T>(string key, RedisFolderEnum folder = RedisFolderEnum.Root, RedisDBEnum db = RedisDBEnum.Default) { string fd = GetDescription(folder); string value = Manager.GetDatabase(GetOperationDB(db)).StringGet(string.IsNullOrEmpty(fd) ? key : fd + ":" + key); return(ConvertObj <T>(value)); }
/// <summary> /// 构造函数 / public /// </summary> /// <param name="dbIndex">RedisDB,默认dbIndex =0</param> /// <param name="ValidTimeSpan">默认过期时间 单位:分钟</param> public RedisOperation(RedisDBEnum dbIndex, double ValidTimeSpan) { _DB = Redis.DB(dbIndex.ToInt()); _defaultValidTimeSpan = TimeSpan.FromMinutes(ValidTimeSpan); }
/// <summary> /// 删除存在超时的键 /// </summary> /// <param name="key"></param> /// <param name="folder"></param> /// <param name="db"></param> /// <returns></returns> public static bool KeyPersist(string key, RedisFolderEnum folder = RedisFolderEnum.Root, RedisDBEnum db = RedisDBEnum.Default) { try { string fd = GetDescription(folder); var context = Manager.GetDatabase(GetOperationDB(db)); var str = string.IsNullOrEmpty(fd) ? key : fd + ":" + key; //EventLog.WriteLog(str); return(context.KeyPersist(str)); } catch (Exception) { return(false); } }
/// <summary> /// 添加对象 /// </summary> /// <typeparam name="T">类型</typeparam> /// <param name="key">键</param> /// <param name="obj">值</param> /// <param name="expireMinutes">过期时间,单位:分钟</param> /// <param name="folder">目录,默认根目录</param> /// <param name="db">库,默认读取配置文件</param> /// <returns></returns> public static bool StringSet <T>(string key, T obj, int expireMinutes = 600, RedisFolderEnum folder = RedisFolderEnum.Root, RedisDBEnum db = RedisDBEnum.Default) { string fd = GetDescription(folder); return(Manager.GetDatabase(GetOperationDB(db)).StringSet(string.IsNullOrEmpty(fd) ? key : fd + ":" + key, ConvertJson(obj), TimeSpan.FromMinutes(expireMinutes))); }
/// <summary> /// 获取所有 /// </summary> /// <typeparam name="T">类型</typeparam> /// <param name="key">键</param> /// <param name="folder">目录,默认根目录</param> /// <param name="db">库,默认读取配置文件</param> /// <returns></returns> public static HashEntry[] HashGetAll <T>(string key, RedisFolderEnum folder = RedisFolderEnum.Root, RedisDBEnum db = RedisDBEnum.Default) { string fd = GetDescription(folder); return(Manager.GetDatabase(GetOperationDB(db)).HashGetAll(string.IsNullOrEmpty(fd) ? key : fd + ":" + key)); }
/// <summary> /// 批量删除 /// </summary> /// <param name="key">键</param> /// <param name="dataKeys">元素的键</param> /// <param name="folder">目录,默认根目录</param> /// <param name="db">库,默认读取配置文件</param> /// <returns></returns> public static long HashDelete(string key, List <RedisValue> dataKeys, RedisFolderEnum folder = RedisFolderEnum.Root, RedisDBEnum db = RedisDBEnum.Default) { string fd = GetDescription(folder); return(Manager.GetDatabase(GetOperationDB(db)).HashDelete(string.IsNullOrEmpty(fd) ? key : fd + ":" + key, dataKeys.ToArray())); }
/// <summary> /// 入队(后插入的在List后面) /// </summary> /// <typeparam name="T">类型</typeparam> /// <param name="key">键</param> /// <param name="value">值</param> /// <param name="folder">目录,默认根目录</param> /// <param name="db">库,默认读取配置文件</param> public static long ListRightPush <T>(string key, T value, RedisFolderEnum folder = RedisFolderEnum.Root, RedisDBEnum db = RedisDBEnum.Default) { string fd = GetDescription(folder); return(Manager.GetDatabase(GetOperationDB(db)).ListRightPush(string.IsNullOrEmpty(fd) ? key : fd + ":" + key, ConvertJson(value))); }
/// <summary> /// 批量获取 /// </summary> /// <typeparam name="T">类型</typeparam> /// <param name="key">键</param> /// <param name="dataKeys">元素的键</param> /// <param name="folder">目录,默认根目录</param> /// <param name="db">库,默认读取配置文件</param> /// <returns></returns> public static List <T> HashGet <T>(string key, RedisValue[] dataKeys, RedisFolderEnum folder = RedisFolderEnum.Root, RedisDBEnum db = RedisDBEnum.Default) { string fd = GetDescription(folder); var value = Manager.GetDatabase(GetOperationDB(db)).HashGet(string.IsNullOrEmpty(fd) ? key : fd + ":" + key, dataKeys); return(ConvetList <T>(value)); }
/// <summary> /// 替换指定 /// </summary> /// <typeparam name="T">类型</typeparam> /// <param name="key">键</param> /// <param name="index">索引</param> /// <param name="value">值</param> /// <param name="folder">目录,默认根目录</param> /// <param name="db">库,默认读取配置文件</param> public static void ListSetByIndex <T>(string key, long index, T value, RedisFolderEnum folder = RedisFolderEnum.Root, RedisDBEnum db = RedisDBEnum.Default) { string fd = GetDescription(folder); Manager.GetDatabase(GetOperationDB(db)).ListSetByIndex(string.IsNullOrEmpty(fd) ? key : fd + ":" + key, index, ConvertJson(value)); }
/// <summary> /// 获取指定 /// </summary> /// <typeparam name="T">类型</typeparam> /// <param name="key">键</param> /// <param name="index">索引</param> /// <param name="folder">目录,默认根目录</param> /// <param name="db">库,默认读取配置文件</param> /// <returns></returns> public static T ListGetByIndex <T>(string key, long index, RedisFolderEnum folder = RedisFolderEnum.Root, RedisDBEnum db = RedisDBEnum.Default) { string fd = GetDescription(folder); var value = Manager.GetDatabase(GetOperationDB(db)).ListGetByIndex(string.IsNullOrEmpty(fd) ? key : fd + ":" + key, index); return(ConvertObj <T>(value)); }
/// <summary> /// 添加单个 /// </summary> /// <param name="key">键</param> /// <param name="value">值</param> /// <param name="expireMinutes">过期时间,单位:分钟,-1表示不过期</param> /// <param name="folder">目录,默认根目录</param> /// <param name="db">库,默认读取配置文件</param> /// <returns></returns> public static bool StringSet(string key, string value, int expireMinutes = 600, RedisFolderEnum folder = RedisFolderEnum.Root, RedisDBEnum db = RedisDBEnum.Default) { string fd = GetDescription(folder); if (expireMinutes == -1) { return(Manager.GetDatabase(GetOperationDB(db)).StringSet(string.IsNullOrEmpty(fd) ? key : fd + ":" + key, value)); } else { return(Manager.GetDatabase(GetOperationDB(db)).StringSet(string.IsNullOrEmpty(fd) ? key : fd + ":" + key, value, TimeSpan.FromMinutes(expireMinutes))); } }
/// <summary> /// 修改键 /// </summary> /// <param name="key">键</param> /// <param name="newKey">新键</param> /// <param name="folder">目录,默认根目录</param> /// <param name="db">库,默认读取配置文件</param> /// <returns></returns> public static bool KeyRename(string key, string newKey, RedisFolderEnum folder = RedisFolderEnum.Root, RedisDBEnum db = RedisDBEnum.Default) { try { string fd = GetDescription(folder); return(Manager.GetDatabase(GetOperationDB(db)).KeyRename(string.IsNullOrEmpty(fd) ? key : fd + ":" + key, string.IsNullOrEmpty(fd) ? newKey : fd + ":" + newKey)); } catch (Exception) { return(false); } }
/// <summary> /// 是否存在 /// </summary> /// <param name="key">键</param> /// <param name="dataKey">元素的键</param> /// <param name="folder">目录,默认根目录</param> /// <param name="db">库,默认读取配置文件</param> /// <returns></returns> public static bool HashExists(string key, string dataKey, RedisFolderEnum folder = RedisFolderEnum.Root, RedisDBEnum db = RedisDBEnum.Default) { string fd = GetDescription(folder); return(Manager.GetDatabase(GetOperationDB(db)).HashExists(string.IsNullOrEmpty(fd) ? key : fd + ":" + key, dataKey)); }
/// <summary> /// 批量删除 /// </summary> /// <param name="keys">键</param> /// <param name="folder">目录,默认根目录</param> /// <param name="db">库,默认读取配置文件</param> /// <returns></returns> public static long KeyDelete(List <string> keys, RedisFolderEnum folder = RedisFolderEnum.Root, RedisDBEnum db = RedisDBEnum.Default) { try { string fd = GetDescription(folder); return(Manager.GetDatabase(GetOperationDB(db)).KeyDelete(ConvertRedisKeys(keys, fd))); } catch (Exception) { return(0); } }
/// <summary> /// 获取 /// </summary> /// <typeparam name="T">类型</typeparam> /// <param name="key">键</param> /// <param name="start">索引开始</param> /// <param name="stop">索引结束</param> /// <param name="order">排序方式</param> /// <param name="folder">目录,默认根目录</param> /// <param name="db">库,默认读取配置文件</param> /// <returns></returns> public static List <T> SortedSetRangeByRank <T>(string key, long start = 0, long stop = -1, Order order = Order.Ascending, RedisFolderEnum folder = RedisFolderEnum.Root, RedisDBEnum db = RedisDBEnum.Default) { string fd = GetDescription(folder); var values = Manager.GetDatabase(GetOperationDB(db)).SortedSetRangeByRank(string.IsNullOrEmpty(fd) ? key : fd + ":" + key, start, stop, order); return(ConvetList <T>(values)); }
/// <summary> /// 批量添加 /// </summary> /// <param name="keysStr">键</param> /// <param name="valuesStr">值</param> /// <param name="folder">目录,默认根目录</param> /// <param name="db">库,默认读取配置文件</param> /// <returns></returns> public static bool StringSet(string[] keysStr, string[] valuesStr, RedisFolderEnum folder = RedisFolderEnum.Root, RedisDBEnum db = RedisDBEnum.Default) { string fd = GetDescription(folder); var count = keysStr.Length; var keyValuePair = new KeyValuePair <RedisKey, RedisValue> [count]; for (int i = 0; i < count; i++) { keyValuePair[i] = new KeyValuePair <RedisKey, RedisValue>(string.IsNullOrEmpty(fd) ? keysStr[i] : fd + ":" + keysStr[i], valuesStr[i]); } return(Manager.GetDatabase(GetOperationDB(db)).StringSet(keyValuePair)); }
/// <summary> /// 删除 /// </summary> /// <typeparam name="T">类型</typeparam> /// <param name="key">键</param> /// <param name="value">值</param> /// <param name="folder">目录,默认根目录</param> /// <param name="db">库,默认读取配置文件</param> /// <returns></returns> public static bool SortedSetRemove <T>(string key, T value, RedisFolderEnum folder = RedisFolderEnum.Root, RedisDBEnum db = RedisDBEnum.Default) { string fd = GetDescription(folder); return(Manager.GetDatabase(GetOperationDB(db)).SortedSetRemove(string.IsNullOrEmpty(fd) ? key : fd + ":" + key, ConvertJson <T>(value))); }
/// <summary> /// 获取多个 /// </summary> /// <param name="keys">键</param> /// <param name="folder">目录,默认根目录</param> /// <param name="db">库,默认读取配置文件</param> /// <returns></returns> public static RedisValue[] StringGet(List <string> keys, RedisFolderEnum folder = RedisFolderEnum.Root, RedisDBEnum db = RedisDBEnum.Default) { string fd = GetDescription(folder); return(Manager.GetDatabase(GetOperationDB(db)).StringGet(ConvertRedisKeys(keys, fd))); }
/// <summary> /// 批量删除(根据对象) /// </summary> /// <param name="key">键</param> /// <param name="values">对象</param> /// <param name="folder">目录,默认根目录</param> /// <param name="db">库,默认读取配置文件</param> /// <returns></returns> public static long SortedSetRemove <T>(string key, List <T> values, RedisFolderEnum folder = RedisFolderEnum.Root, RedisDBEnum db = RedisDBEnum.Default) { string fd = GetDescription(folder); var redisValues = values.Select(m => (RedisValue)ConvertJson(m)).ToArray(); return(Manager.GetDatabase(GetOperationDB(db)).SortedSetRemove(string.IsNullOrEmpty(fd) ? key : fd + ":" + key, redisValues)); }
/// <summary> /// 获取 /// </summary> /// <typeparam name="T">类型</typeparam> /// <param name="key">键</param> /// <param name="start">索引开始</param> /// <param name="stop">索引结束</param> /// <param name="folder">目录,默认根目录</param> /// <param name="db">库,默认读取配置文件</param> /// <returns></returns> public static List <T> ListRange <T>(string key, long start = 0, long stop = -1, RedisFolderEnum folder = RedisFolderEnum.Root, RedisDBEnum db = RedisDBEnum.Default) { string fd = GetDescription(folder); var context = Manager.GetDatabase(GetOperationDB(db)); var value = context.ListRange(string.IsNullOrEmpty(fd) ? key : fd + ":" + key, start, stop); //EventLog.WriteLog("" + (value == null)); return(ConvetList <T>(value)); }
/// <summary> /// 构造函数 / public /// </summary> /// <param name="dbIndex">RedisDB,默认dbIndex =0</param> public RedisOperation(RedisDBEnum dbIndex) { _DB = Redis.DB(dbIndex.ToInt()); _defaultValidTimeSpan = TimeSpan.FromHours(Redis.DefaultValidTimeSpan); }