Exemple #1
0
            public override void MapUnrecognizedLine(string key, string value)
            {
                if (_slaveRegex.IsMatch(key) && value.HasValue())
                {
                    var parts = value.Split(StringSplits.Comma);
                    if (parts.Length == 3)
                    {
                        SlaveConnections.Add(new RedisSlaveInfo
                        {
                            Index  = int.Parse(key.Replace("slave", "")),
                            IP     = parts[0],
                            Port   = int.Parse(parts[1]),
                            Status = parts[2]
                        });
                    }
                    // redis 2.8+
                    if (parts.Length > 3)
                    {
                        try
                        {
                            var si = new RedisSlaveInfo {
                                Index = int.Parse(key.Replace("slave", ""))
                            };
                            foreach (var p in parts)
                            {
                                var pair = p.Split(StringSplits.Equal);
                                if (pair.Length != 2)
                                {
                                    continue;
                                }
                                var val = pair[1];

                                switch (pair[0])
                                {
                                case "ip":
                                    si.IP = val;
                                    break;

                                case "port":
                                    si.Port = int.Parse(val);
                                    break;

                                case "state":
                                    si.Status = val;
                                    break;

                                case "offset":
                                    si.Offset = long.Parse(val);
                                    break;
                                }
                            }
                            SlaveConnections.Add(si);
                        }
                        catch (Exception e)
                        {
                            new Exception("Redis error: couldn't parse slave string: " + value, e).Log();
                        }
                    }
                }
            }
Exemple #2
0
 public override void MapUnrecognizedLine(string key, string value)
 {
     if (_slaveRegex.IsMatch(key) && value.HasValue())
     {
         var parts = value.Split(StringSplits.Comma);
         if (parts.Length == 3)
         {
             SlaveConnections.Add(new RedisSlaveInfo
                 {
                     Index = int.Parse(key.Replace("slave", "")),
                     IP = parts[0],
                     Port = int.Parse(parts[1]),
                     Status = parts[2]
                 });
         }
         // redis 2.8+
         if (parts.Length > 3)
         {
             try
             {
                 var si = new RedisSlaveInfo { Index = int.Parse(key.Replace("slave", "")) };
                 foreach(var p in parts) {
                     var pair = p.Split(StringSplits.Equal);
                     if (pair.Length != 2) continue;
                     var val = pair[1];
                     
                     switch(pair[0]) {
                         case "ip":
                             si.IP = val;
                             break;
                         case "port":
                             si.Port = int.Parse(val);
                             break;
                         case "state":
                             si.Status = val;
                             break;
                         case "offset":
                             si.Offset = long.Parse(val);
                             break;
                     }
                 }
                 SlaveConnections.Add(si);
             } catch (Exception e) {
                 Current.LogException("Redis error: couldn't parse slave string: " + value, e);
             }
         }
     }
 }
Exemple #3
0
 public RedisInstance GetInstance(RedisSlaveInfo info) => GetInstance(info.Port, info.IPAddress);