예제 #1
0
        public RedisResult <RedisSentinelMasterInfo> Master(string masterName)
        {
            if (masterName.IsEmpty())
            {
                throw new ArgumentNullException("masterName");
            }

            var raw = ExpectArray(RedisCommandList.Sentinel, RedisCommandList.SentinelMaster, masterName.ToBytes());

            if (!ReferenceEquals(raw, null))
            {
                var rawValue = raw.Value;
                if (!ReferenceEquals(rawValue, null) && rawValue.Type == RedisRawObjectType.Array)
                {
                    var info = new RedisSentinelMasterInfo(rawValue);
                    return(new RedisResult <RedisSentinelMasterInfo>(info));
                }
            }
            return(new RedisResult <RedisSentinelMasterInfo>(null));
        }
예제 #2
0
        public RedisResult <RedisSentinelMasterInfo[]> Masters()
        {
            var raw = ExpectArray(RedisCommandList.Sentinel, RedisCommandList.SentinelMasters);

            if (!ReferenceEquals(raw, null))
            {
                var rawValue = raw.Value;
                if (!ReferenceEquals(rawValue, null) && rawValue.Type == RedisRawObjectType.Array)
                {
                    var items = rawValue.Items;
                    if (items != null)
                    {
                        var count = items.Count;
                        if (count > 0)
                        {
                            var list = new List <RedisSentinelMasterInfo>(count);
                            for (var i = 0; i < count; i++)
                            {
                                var item = items[i];
                                if (!ReferenceEquals(item, null) && item.Type == RedisRawObjectType.Array)
                                {
                                    var info = new RedisSentinelMasterInfo(item);
                                    list.Add(info);
                                }
                            }

                            if (list.Count > 0)
                            {
                                return(new RedisResult <RedisSentinelMasterInfo[]>(list.ToArray()));
                            }
                        }
                    }
                }
            }
            return(new RedisResult <RedisSentinelMasterInfo[]>(null));
        }