Beispiel #1
0
 /// <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);
     }
 }
Beispiel #2
0
        /// <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));
        }
Beispiel #3
0
        /// <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));
        }
Beispiel #4
0
        /// <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));
        }
Beispiel #5
0
 /// <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);
 }
Beispiel #6
0
 /// <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);
     }
 }
Beispiel #7
0
        /// <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)));
        }
Beispiel #8
0
        /// <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));
        }
Beispiel #9
0
        /// <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()));
        }
Beispiel #10
0
        /// <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)));
        }
Beispiel #11
0
        /// <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));
        }
Beispiel #12
0
        /// <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));
        }
Beispiel #13
0
        /// <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));
        }
Beispiel #14
0
        /// <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)));
            }
        }
Beispiel #15
0
 /// <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);
     }
 }
Beispiel #16
0
        /// <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));
        }
Beispiel #17
0
 /// <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);
     }
 }
Beispiel #18
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));
        }
Beispiel #19
0
        /// <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));
        }
Beispiel #20
0
        /// <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)));
        }
Beispiel #21
0
        /// <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)));
        }
Beispiel #22
0
        /// <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));
        }
Beispiel #23
0
        /// <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));
        }
Beispiel #24
0
 /// <summary>
 /// 构造函数  /  public
 /// </summary>
 /// <param name="dbIndex">RedisDB,默认dbIndex =0</param>
 public RedisOperation(RedisDBEnum dbIndex)
 {
     _DB = Redis.DB(dbIndex.ToInt());
     _defaultValidTimeSpan = TimeSpan.FromHours(Redis.DefaultValidTimeSpan);
 }