public RedisRedialManager(string host, string password, ILog logger)
        {
            Logger = logger;
            if (!string.IsNullOrEmpty(host))
            {
                RedisHost = host;
            }
            else
            {
                throw new RedialException("Redis host should not be null.");
            }

            if (!string.IsNullOrEmpty(password))
            {
                Password = password;
            }
            else
            {
                Password = null;
            }

            Redis = new RedisServer(host, 6379, password);
            Redis.Db = 3;
            AtomicExecutor = new RedisAtomicExecutor(this);
        }
        public RedisRedialManager(IDatabase db, INetworkValidater validater, IRedialer redialer, ILogService logger)
        {
            Logger = logger;

            Db = db;
            AtomicExecutor = new RedisAtomicExecutor(this);
            NetworkValidater = validater;
            Redialer = redialer;
        }
        public RedisRedialManager(string host, string password, INetworkValidater validater, IRedialer redialer, ILogService logger)
        {
            Logger = logger;
            if (!string.IsNullOrEmpty(host))
            {
                RedisHost = host;
            }
            else
            {
                throw new RedialException("Redis host should not be null.");
            }

            if (!string.IsNullOrEmpty(password))
            {
                Password = password;
            }
            else
            {
                Password = null;
            }

            var Redis = ConnectionMultiplexer.Connect(new ConfigurationOptions()
            {
                ServiceName = "DotnetSpider",
                Password = password,
                ConnectTimeout = 65530,
                KeepAlive = 8,
                ConnectRetry = 20,
                SyncTimeout = 65530,
                ResponseTimeout = 65530,
                EndPoints =
                { host, "6379" }
            });
            Db = Redis.GetDatabase(3);
            AtomicExecutor = new RedisAtomicExecutor(this);
            NetworkValidater = validater;
            Redialer = redialer;
        }