Example #1
0
 /// <summary>
 /// 获取要操作的库
 /// </summary>
 /// <param name="db">库,0和-1都是第一个库,1是第二个库...</param>
 /// <returns></returns>
 private static int GetOperationDB(RedisEnum db)
 {
     if (db == RedisEnum.Default)
     {
         return(_strDb);
     }
     else
     {
         return((int)db);
     }
 }
Example #2
0
 /// <summary>
 /// 出栈
 /// </summary>
 public static string GetStack(string key, RedisEnum redisEnum = RedisEnum.Main)
 {
     try
     {
         using (IRedisClient iRedisClient = redisEnum == RedisEnum.Main ? MainRedisClientManager.GetClient() : CommonRedisClientManager.GetClient())
         {
             iRedisClient.Password = redisEnum == RedisEnum.Main ? MainMasterPwd : CommonMasterPwd;
             return(iRedisClient.PopItemFromList(key));
         }
     }
     catch (Exception ex)
     {
         FileHelper.logger.Warn("Redis出栈时异常 || " + ex.Message);
     }
     return(string.Empty);
 }
Example #3
0
 /// <summary>
 /// 删除缓存
 /// </summary>
 public static bool DeleteCache(string key, RedisEnum redisEnum = RedisEnum.Main)
 {
     try
     {
         using (IRedisClient iRedisClient = redisEnum == RedisEnum.Main ? MainRedisClientManager.GetClient() : CommonRedisClientManager.GetClient())
         {
             iRedisClient.Password = redisEnum == RedisEnum.Main ? MainMasterPwd : CommonMasterPwd;
             return(iRedisClient.Remove(key));
         }
     }
     catch (Exception ex)
     {
         FileHelper.logger.Warn("Redis删除缓存时异常 || " + ex.Message);
     }
     return(false);
 }
Example #4
0
 /// <summary>
 /// 获取缓存
 /// </summary>
 public static T GetCache <T>(string key, RedisEnum redisEnum = RedisEnum.Main)
 {
     try
     {
         using (IRedisClient iRedisClient = redisEnum == RedisEnum.Main ? MainRedisClientManager.GetReadOnlyClient() : CommonRedisClientManager.GetReadOnlyClient())
         {
             iRedisClient.Password = redisEnum == RedisEnum.Main ? MainSlavePwd : CommonSlavePwd;
             return(iRedisClient.Get <T>(key));
         }
     }
     catch (Exception ex)
     {
         FileHelper.logger.Warn("Redis获取缓存时异常 || " + ex.Message);
     }
     return(default(T));
 }
Example #5
0
 /// <summary>
 /// 清空缓存
 /// </summary>
 public static bool DeleteAllCache(RedisEnum redisEnum = RedisEnum.Main)
 {
     try
     {
         using (IRedisClient iRedisClient = redisEnum == RedisEnum.Main ? MainRedisClientManager.GetClient() : CommonRedisClientManager.GetClient())
         {
             iRedisClient.Password = redisEnum == RedisEnum.Main ? MainMasterPwd : CommonMasterPwd;
             iRedisClient.FlushAll();
             return(true);
         }
     }
     catch (Exception ex)
     {
         FileHelper.logger.Warn("Redis清空缓存时异常 || " + ex.Message);
     }
     return(false);
 }
Example #6
0
 /// <summary>
 /// 压栈
 /// </summary>
 public static bool SetStack(string key, string val, RedisEnum redisEnum = RedisEnum.Main)
 {
     try
     {
         using (IRedisClient iRedisClient = redisEnum == RedisEnum.Main ? MainRedisClientManager.GetClient() : CommonRedisClientManager.GetClient())
         {
             iRedisClient.Password = redisEnum == RedisEnum.Main ? MainMasterPwd : CommonMasterPwd;
             iRedisClient.PushItemToList(key, val);
             return(true);
         }
     }
     catch (Exception ex)
     {
         FileHelper.logger.Warn("Redis压栈时异常 || " + ex.Message);
     }
     return(false);
 }
Example #7
0
        /// <summary>
        /// 出栈(删除最前面的一个元素并返回)
        /// </summary>
        /// <typeparam name="T">类型</typeparam>
        /// <param name="key">键</param>
        /// <param name="folder">目录,默认根目录</param>
        /// <param name="db">库,默认读取配置文件</param>
        /// <returns></returns>
        public static T ListLeftPop <T>(string key, RedisFolderEnum folder = RedisFolderEnum.Root, RedisEnum db = RedisEnum.Default)
        {
            string strFd        = GetDescription(folder);
            var    vRedisValues = Manager.GetDatabase(GetOperationDB(db)).ListLeftPop(StringExtension.IsBlank(strFd) ? key : strFd + ":" + key);

            return(ConvertObj <T>(vRedisValues));
        }
Example #8
0
 /// <summary>
 /// 清空
 /// </summary>
 /// <param name="key">键</param>
 /// <param name="folder">目录,默认根目录</param>
 /// <param name="db">库,默认读取配置文件</param>
 /// <returns></returns>
 public static IEnumerable <RedisKey> AllClear(string key, RedisFolderEnum folder = RedisFolderEnum.Root, RedisEnum db = RedisEnum.Default)
 {
     return(Manager.GetServer(_strConn, _strPwd).Keys(GetOperationDB(db), key));
 }
Example #9
0
 /// <summary>
 /// 删除
 /// </summary>
 /// <param name="key">键</param>
 /// <param name="folder">目录,默认根目录</param>
 /// <param name="db">库,默认读取配置文件</param>
 /// <returns></returns>
 public static bool KeyDelete(string key, RedisFolderEnum folder = RedisFolderEnum.Root, RedisEnum db = RedisEnum.Default)
 {
     try
     {
         string strFd = GetDescription(folder);
         return(Manager.GetDatabase(GetOperationDB(db)).KeyDelete(StringExtension.IsBlank(strFd) ? key : strFd + ":" + key));
     }
     catch (Exception)
     {
         return(false);
     }
 }
Example #10
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, RedisEnum db = RedisEnum.Default)
 {
     try
     {
         string strFd = GetDescription(folder);
         return(Manager.GetDatabase(GetOperationDB(db)).KeyDelete(ConvertRedisKeys(keys, strFd)));
     }
     catch (Exception)
     {
         return(0);
     }
 }
Example #11
0
        /// <summary>
        /// 获取个数
        /// </summary>
        /// <param name="key">键</param>
        /// <param name="folder">目录,默认根目录</param>
        /// <param name="db">库,默认读取配置文件</param>
        /// <returns></returns>
        public static long ListLength(string key, RedisFolderEnum folder = RedisFolderEnum.Root, RedisEnum db = RedisEnum.Default)
        {
            string strFd = GetDescription(folder);

            return(Manager.GetDatabase(GetOperationDB(db)).ListLength(StringExtension.IsBlank(strFd) ? key : strFd + ":" + key));
        }
Example #12
0
 /// <summary>
 /// 设置缓存
 /// </summary>
 public static bool SetCache(string key, object val, DateTime?dateTime = null, RedisEnum redisEnum = RedisEnum.Main)
 {
     try
     {
         using (IRedisClient iRedisClient = redisEnum == RedisEnum.Main ? MainRedisClientManager.GetClient() : CommonRedisClientManager.GetClient())
         {
             iRedisClient.Password = redisEnum == RedisEnum.Main ? MainMasterPwd : CommonMasterPwd;
             if (dateTime != null)
             {
                 return(iRedisClient.Set(key, val, (DateTime)dateTime));
             }
             else
             {
                 return(iRedisClient.Set(key, val));
             }
         }
     }
     catch (Exception ex)
     {
         FileHelper.logger.Warn("Redis设置缓存时异常 || " + ex.Message);
     }
     return(false);
 }
Example #13
0
        /// <summary>
        /// 批量入队(后插入的在List后面)
        /// </summary>
        /// <typeparam name="T">类型</typeparam>
        /// <param name="key">键</param>
        /// <param name="values">值</param>
        /// <param name="folder">目录,默认根目录</param>
        /// <param name="db">库,默认读取配置文件</param>
        /// <returns></returns>
        public static long ListRightPush <T>(string key, List <T> values, RedisFolderEnum folder = RedisFolderEnum.Root, RedisEnum db = RedisEnum.Default)
        {
            string strFd        = GetDescription(folder);
            var    vRedisValues = values.Select(m => (RedisValue)ConvertJson(m)).ToArray();

            return(Manager.GetDatabase(GetOperationDB(db)).ListRightPush(StringExtension.IsBlank(strFd) ? key : strFd + ":" + key, vRedisValues));
        }
Example #14
0
        /// <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, RedisEnum db = RedisEnum.Default)
        {
            string strFd        = GetDescription(folder);
            var    vRedisValues = Manager.GetDatabase(GetOperationDB(db)).ListRange(StringExtension.IsBlank(strFd) ? key : strFd + ":" + key, start, stop);

            return(ConvetList <T>(vRedisValues));
        }
Example #15
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, RedisEnum db = RedisEnum.Default)
 {
     try
     {
         string strFd = GetDescription(folder);
         return(Manager.GetDatabase(GetOperationDB(db)).KeyExpire(StringExtension.IsBlank(strFd) ? key : strFd + ":" + key, DateTime.Now.AddMinutes(min)));
     }
     catch (Exception)
     {
         return(false);
     }
 }
Example #16
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, RedisEnum db = RedisEnum.Default)
        {
            string strFd = GetDescription(folder);

            return(Manager.GetDatabase(GetOperationDB(db)).ListRightPush(StringExtension.IsBlank(strFd) ? key : strFd + ":" + key, ConvertJson(value)));
        }
Example #17
0
        /// <summary>
        /// 根据key获取单个对象
        /// </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, RedisEnum db = RedisEnum.Default)
        {
            string strFd  = GetDescription(folder);
            string vValue = Manager.GetDatabase(GetOperationDB(db)).StringGet(StringExtension.IsBlank(strFd) ? key : strFd + ":" + key);

            return(ConvertObj <T>(vValue));
        }
Example #18
0
        /// <summary>
        /// 批量根据key获取
        /// </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, RedisEnum db = RedisEnum.Default)
        {
            string strFd = GetDescription(folder);

            return(Manager.GetDatabase(GetOperationDB(db)).StringGet(ConvertRedisKeys(keys, strFd)));
        }
Example #19
0
        /// <summary>
        /// 缓存对象
        /// </summary>
        /// <typeparam name="T">类型</typeparam>
        /// <param name="key">键</param>
        /// <param name="obj">值</param>
        /// <param name="folder">目录,默认根目录</param>
        /// <param name="db">库,默认读取配置文件</param>
        /// <returns></returns>
        public static bool StringSet <T>(string key, T obj, RedisFolderEnum folder = RedisFolderEnum.Root, RedisEnum db = RedisEnum.Default)
        {
            string strFd = GetDescription(folder);

            return(Manager.GetDatabase(GetOperationDB(db)).StringSet(StringExtension.IsBlank(strFd) ? key : strFd + ":" + key, JsonHelper.SerializeObject(obj)));
        }
Example #20
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, RedisEnum db = RedisEnum.Default)
        {
            string strFd         = GetDescription(folder);
            var    vCount        = keysStr.Length;
            var    vKeyValuePair = new KeyValuePair <RedisKey, RedisValue> [vCount];

            for (int i = 0; i < vCount; i++)
            {
                vKeyValuePair[i] = new KeyValuePair <RedisKey, RedisValue>(StringExtension.IsBlank(strFd) ? keysStr[i] : strFd + ":" + keysStr[i], valuesStr[i]);
            }
            return(Manager.GetDatabase(GetOperationDB(db)).StringSet(vKeyValuePair));
        }
Example #21
0
        /// <summary>
        /// 缓存单个字符串
        /// </summary>
        /// <param name="key">键</param>
        /// <param name="value">值</param>
        /// <param name="expireMinutes">过期时间,单位:分钟</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, RedisEnum db = RedisEnum.Default)
        {
            string strFd = GetDescription(folder);

            return(Manager.GetDatabase(GetOperationDB(db)).StringSet(StringExtension.IsBlank(strFd) ? key : strFd + ":" + key, value, TimeSpan.FromMinutes(expireMinutes)));
        }