package common

import (
	"github.com/gomodule/redigo/redis"
	"go.uber.org/zap"
	"time"
)

func InitRedis() *redis.Pool {
	redisAddr := CONFIG.Redis.Addr
	//redisType := CONFIG.Redis.RedisType
	//masterName := CONFIG.Redis.MasterName
	MaxIdle := CONFIG.Redis.MaxIdle
	password := CONFIG.Redis.Password
	db := CONFIG.Redis.DB

	return &redis.Pool{
		MaxIdle:     MaxIdle,
		IdleTimeout: 240 * time.Second,
		// Dial or DialContext must be set. When both are set, DialContext takes precedence over Dial.
		Dial: func() (redis.Conn, error) {
			setDB := redis.DialDatabase(db)
			pd := redis.DialPassword(password)
			c, err := redis.Dial("tcp", redisAddr, setDB, pd)
			if err != nil {
				c.Close()
				LOG.Info("初始化redis失败", zap.String("status", "失败"))
				panic(err)
			}
			return c, nil
		},
	}
}

//func CheckRedisRole(c redis.Conn, t time.Time) error {
//	if !sentinel.TestRole(c, "master") {
//		return fmt.Errorf("Role check failed")
//	} else {
//		return nil
//	}
//}
