func NewFailoverClient(failoverOpt *FailoverOptions) *Client {
	opt := failoverOpt.options()
	failover := &sentinelFailover{
		masterName:    failoverOpt.MasterName,
		sentinelAddrs: failoverOpt.SentinelAddrs,
		opt: opt,
	}
	return newClient(opt, failover.Pool())
}
NewFailoverClient returns a Redis client that uses Redis Sentinel
for automatic failover. It's safe for concurrent use by multiple
goroutines.
package redis
import (
	"errors"
	"log"
	"net"
	"strings"
	"sync"
	"time"
)
type FailoverOptions struct {
	MasterName string
	SentinelAddrs []string
	Password string
	DB       int64
	DialTimeout  time.Duration
	ReadTimeout  time.Duration
	WriteTimeout time.Duration
	PoolSize    int
	PoolTimeout time.Duration
	IdleTimeout time.Duration
	MaxRetries int
}
func (opt *FailoverOptions) options() *Options {
	return &Options{
		Addr: "FailoverClient",
		DB:       opt.DB,
		Password: opt.Password,
		DialTimeout:  opt.DialTimeout,
		ReadTimeout:  opt.ReadTimeout,
		WriteTimeout: opt.WriteTimeout,
		PoolSize:    opt.PoolSize,
		PoolTimeout: opt.PoolTimeout,
		IdleTimeout: opt.IdleTimeout,
		MaxRetries: opt.MaxRetries,
	}
}