/// <inheritdoc />
        public RedisManagerPool(IEnumerable <string> hosts, RedisPoolConfig config = null)
        {
            if (hosts == null)
            {
                throw new ArgumentNullException(nameof(hosts));
            }

            this.RedisResolver = new RedisResolver(hosts, null);

            if (config == null)
            {
                config = new RedisPoolConfig();
            }

            this.OnFailover = new List <Action <IRedisClientManager> >();

            this.MaxPoolSize = config.MaxPoolSize;

            this._clients  = new RedisClient[this.MaxPoolSize];
            this.PoolIndex = 0;

            this.AssertAccessOnlyOnSameThread = RedisConfig.AssertAccessOnlyOnSameThread;
        }
 /// <inheritdoc />
 public RedisManagerPool(string host, RedisPoolConfig config) : this(new[] { host }, config)
 {
 }