Ejemplo n.º 1
0
        /// <summary>
        ///
        /// </summary>
        /// <typeparam name="TValue"></typeparam>
        /// <param name="key"></param>
        /// <param name="ifNullFunc"></param>
        /// <param name="connectionStr">不填默认为伪原创链接</param>
        /// <returns></returns>
        public static TValue GetValue <TValue>(string key, Func <Task <TValue> > ifNullFunc = null, string connectionStr = "")
        {
            int retryCounter = 0;

Retry:
            try
            {
                var value = RedisCommonCluster.Database(connectionStr).StringGet(key);
                if (value.IsNull)
                {
                    return(default(TValue));
                }

                if (ifNullFunc != null)
                {
                    return(ifNullFunc.Invoke().GetAwaiter().GetResult());
                }

                return(JsonConvert.DeserializeObject <TValue>(value));
            }
            catch (Exception ex)
            {
                if (retryCounter <= 3)
                {
                    System.Threading.Thread.Sleep(100);
                    retryCounter++;
                    goto Retry;
                }
            }
            return(default(TValue));
        }
Ejemplo n.º 2
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="key"></param>
        /// <param name="value"></param>
        /// <param name="expiry"></param>
        /// <param name="connectionStr">不填默认为伪原创链接</param>
        /// <returns></returns>
        public static bool SetValue(string key, object value, TimeSpan?expiry = null, string connectionStr = "")
        {
            if (value == null)
            {
                return(false);
            }
            var _value = JsonConvert.SerializeObject(value);

            int retryCounter = 0;

Retry:
            try
            {
                return(RedisCommonCluster.Database(connectionStr).StringSet(key, _value, expiry));
            }
            catch (Exception ex)
            {
                if (retryCounter <= 3)
                {
                    System.Threading.Thread.Sleep(100);
                    retryCounter++;
                    goto Retry;
                }
            }

            return(false);
        }
Ejemplo n.º 3
0
        public static T ListRightPop <T>(string key, string connectionStr = "")
        {
            var rValue = RedisCommonCluster.Database(connectionStr).ListRightPop(key);
            var t      = JsonConvert.DeserializeObject <T>(rValue);

            return(t);
        }
Ejemplo n.º 4
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="key"></param>
        /// <param name="ifNullFunc"></param>
        /// <param name="connectionStr">不填默认为伪原创链接</param>
        /// <returns></returns>
        public static object GetValue(string key, Func <Task <object> > ifNullFunc = null, string connectionStr = "")
        {
            var value = RedisCommonCluster.Database(connectionStr).StringGet(key);

            if (value.IsNull)
            {
                return(null);
            }

            if (ifNullFunc != null)
            {
                return(ifNullFunc.Invoke().GetAwaiter().GetResult());
            }

            return(JsonConvert.DeserializeObject(value));
        }
Ejemplo n.º 5
0
 public static StackExchange.Redis.RedisValue HashDelete(string key, string dataKey, string connectionStr = "")
 {
     return(RedisCommonCluster.Database(connectionStr).HashDelete(key, dataKey));
 }
Ejemplo n.º 6
0
 public static StackExchange.Redis.HashEntry[] HashGetAll(string key, string connectionStr = "")
 {
     return(RedisCommonCluster.Database(connectionStr).HashGetAll(key));
 }
Ejemplo n.º 7
0
 public static bool HashSet(string key, string dataKey, string value, string connectionStr = "")
 {
     return(RedisCommonCluster.Database(connectionStr).HashSet(key, dataKey, value));
 }
Ejemplo n.º 8
0
        ///// <summary>
        ///// 删除指定前缀的key
        ///// </summary>
        ///// <param name="key"></param>
        ///// <param name="isAddEnv"></param>
        //public static void DeleteLikeKeys(string key)
        //{
        //    var serverlis = RedisCommonCluster.Servers;

        //    foreach (var server in serverlis)
        //    {
        //        var keys = server.Keys(pattern: "*" + key + "*");
        //        foreach (var item in keys)
        //            RedisCommonCluster.Database.KeyDelete(item);
        //    }
        //}
        public static bool SortedSetAdd(string key, string a, int b, string connectionStr = "")
        {
            return(RedisCommonCluster.Database(connectionStr).SortedSetAdd(key, a, b));
        }
Ejemplo n.º 9
0
 public static long Decr(string key, string connectionStr = "")
 {
     return(RedisCommonCluster.Database(connectionStr).StringDecrement(key));
 }
Ejemplo n.º 10
0
 public static long ListLength(string key, string connectionStr = "")
 {
     return(RedisCommonCluster.Database(connectionStr).ListLength(key));
 }
Ejemplo n.º 11
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="key"></param>
        /// <param name="isAddEnv"></param>
        /// <param name="connectionStr">不填默认为伪原创链接</param>
        /// <returns></returns>
        public static string ListRightPop(string key, string connectionStr = "")
        {
            var rValue = RedisCommonCluster.Database(connectionStr).ListRightPop(key);

            return(rValue);
        }
Ejemplo n.º 12
0
 /// <summary>
 /// connectionStr
 /// </summary>
 /// <param name="key"></param>
 /// <param name="value"></param>
 /// <param name="connectionStr">不填默认为伪原创链接</param>
 /// <returns></returns>
 public static long ListRightPush(string key, string value, string connectionStr = "")
 {
     return(RedisCommonCluster.Database(connectionStr).ListRightPush(key, value));
 }
Ejemplo n.º 13
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="key"></param>
 /// <param name="connectionStr">不填默认为伪原创链接</param>
 /// <returns></returns>
 public static bool KeyExists(string key, string connectionStr = "")
 {
     return(RedisCommonCluster.Database(connectionStr).KeyExists(key));
 }
Ejemplo n.º 14
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="key"></param>
 /// <param name="connectionStr">不填默认为伪原创链接</param>
 /// <returns></returns>
 public static bool Remove(string key, string connectionStr = "")
 {
     return(RedisCommonCluster.Database(connectionStr).KeyDelete(key));
 }