diff --git a/sentinel/sentinel.go b/sentinel/sentinel.go index bb78866..b650246 100644 --- a/sentinel/sentinel.go +++ b/sentinel/sentinel.go @@ -29,6 +29,15 @@ type Config struct { IdleTimeout *int `toml:"idle_timeout"` //空闲超时时间 } +func GetSecDsn(cfg Config) (dsn string) { + if cfg.Master != "" { + dsn += fmt.Sprintf("mode=redis address=%s", cfg.Master) + } else if cfg.MasterName != "" { + dsn += fmt.Sprintf("mode=sentinel address=%s mastername=%s", cfg.Sentinels, cfg.MasterName) + } + return dsn +} + type Sentinel struct { // Addrs is a slice with known Sentinel addresses. Addrs []string @@ -134,13 +143,13 @@ func NewPool(cfg Config) *redis.Pool { Dial: func() (redis.Conn, error) { masterAddr, err := sntnl.MasterAddr() if err != nil { - logErrLogger.Output(2, fmt.Sprintf("get master from sentinel error: %s", err)) + logErrLogger.Output(2, fmt.Sprintf("get master from sentinel error: %s", err)) return nil, err } c, err := redis.Dial("tcp", masterAddr) if err != nil { - logErrLogger.Output(2, fmt.Sprintf("connect [%s] error: %s", masterAddr, err)) + logErrLogger.Output(2, fmt.Sprintf("connect [%s] error: %s", masterAddr, err)) return nil, err } @@ -152,10 +161,10 @@ func NewPool(cfg Config) *redis.Pool { } if err != nil { - logErrLogger.Output(2, fmt.Sprintf("auth [%s] error: %s", masterAddr, err)) + logErrLogger.Output(2, fmt.Sprintf("auth [%s] error: %s", masterAddr, err)) return nil, fmt.Errorf("redis master AUTH failed: <%s>", err.Error()) } else if okstr != "OK" { - logErrLogger.Output(2, fmt.Sprintf("auth [%s] not return ok but '%s'", masterAddr, okstr)) + logErrLogger.Output(2, fmt.Sprintf("auth [%s] not return ok but '%s'", masterAddr, okstr)) return nil, fmt.Errorf("redis master AUTH failed: <%s>", okstr) } @@ -164,7 +173,7 @@ func NewPool(cfg Config) *redis.Pool { err = fmt.Errorf( "master(%s) got by name '%s' is not redis master", masterAddr, masterName) - logErrLogger.Output(2, err.Error()) + logErrLogger.Output(2, err.Error()) return nil, err }