Compare commits

...

4 Commits
master ... main

Author Message Date
bf3cd9bc27 fix typo 2024-11-13 22:59:38 +08:00
5a26f88da7 Merge branch 'master' 2024-11-13 12:29:14 +08:00
7c4e176775 add error log 2024-11-12 00:42:57 +08:00
bryanqiu
576807b94e dev 2024-06-28 18:25:26 +08:00
3 changed files with 32 additions and 2 deletions

View File

@ -1,11 +1,25 @@
package redis package redis
import ( import (
redigo "github.com/gomodule/redigo/redis"
"qoobing.com/gomod/redis/redis" "qoobing.com/gomod/redis/redis"
"qoobing.com/gomod/redis/sentinel" "qoobing.com/gomod/redis/sentinel"
) )
type Config = sentinel.Config type (
Conn = redigo.Conn
Pool = redigo.Pool
Config = sentinel.Config
)
var NewPool = redis.NewPool var NewRedisPool = redis.NewPool
var NewSentinelPool = sentinel.NewPool var NewSentinelPool = sentinel.NewPool
func NewPool(cfg Config) *redigo.Pool {
if cfg.Master != "" {
return NewRedisPool(cfg)
} else if cfg.MasterName != "" {
return NewSentinelPool(cfg)
}
panic("invalid config: Master & MasterName are both empty")
}

View File

@ -56,6 +56,10 @@ func NewPool(cfg Config) *redis.Pool {
logStdWriter = os.Stdout logStdWriter = os.Stdout
logStdFlags = log.Ldate | log.Lmicroseconds | log.Lshortfile logStdFlags = log.Ldate | log.Lmicroseconds | log.Lshortfile
logStdLogger = log.New(logStdWriter, logStdPrefix, logStdFlags) logStdLogger = log.New(logStdWriter, logStdPrefix, logStdFlags)
logErrPrefix = "ERRO "
logErrWriter = os.Stderr
logErrFlags = log.Ldate | log.Lmicroseconds | log.Lshortfile
logErrLogger = log.New(logErrWriter, logErrPrefix, logErrFlags)
) )
return &redis.Pool{ return &redis.Pool{
MaxIdle: *cfg.MaxIdle, MaxIdle: *cfg.MaxIdle,
@ -65,6 +69,7 @@ func NewPool(cfg Config) *redis.Pool {
Dial: func() (redis.Conn, error) { Dial: func() (redis.Conn, error) {
c, err := redis.Dial("tcp", masterAddr) c, err := redis.Dial("tcp", masterAddr)
if err != nil { if err != nil {
logErrLogger.Output(2, fmt.Sprintf("connect [%s] error: %s", masterAddr, err))
return nil, err return nil, err
} }
@ -76,8 +81,10 @@ func NewPool(cfg Config) *redis.Pool {
} }
if err != nil { if err != nil {
logErrLogger.Output(2, fmt.Sprintf("auth [%s] error: %s", masterAddr, err))
return nil, fmt.Errorf("redis master AUTH failed: <%s>", err.Error()) return nil, fmt.Errorf("redis master AUTH failed: <%s>", err.Error())
} else if okstr != "OK" { } else if okstr != "OK" {
logErrLogger.Output(2, fmt.Sprintf("auth [%s] not return ok but '%s'", masterAddr, okstr))
return nil, fmt.Errorf("redis master AUTH failed: <%s>", okstr) return nil, fmt.Errorf("redis master AUTH failed: <%s>", okstr)
} }

View File

@ -121,6 +121,10 @@ func NewPool(cfg Config) *redis.Pool {
logStdWriter = os.Stdout logStdWriter = os.Stdout
logStdFlags = log.Ldate | log.Lmicroseconds | log.Lshortfile logStdFlags = log.Ldate | log.Lmicroseconds | log.Lshortfile
logStdLogger = log.New(logStdWriter, logStdPrefix, logStdFlags) logStdLogger = log.New(logStdWriter, logStdPrefix, logStdFlags)
logErrPrefix = "ERRO "
logErrWriter = os.Stderr
logErrFlags = log.Ldate | log.Lmicroseconds | log.Lshortfile
logErrLogger = log.New(logErrWriter, logErrPrefix, logErrFlags)
) )
return &redis.Pool{ return &redis.Pool{
MaxIdle: *cfg.MaxIdle, MaxIdle: *cfg.MaxIdle,
@ -130,11 +134,13 @@ func NewPool(cfg Config) *redis.Pool {
Dial: func() (redis.Conn, error) { Dial: func() (redis.Conn, error) {
masterAddr, err := sntnl.MasterAddr() masterAddr, err := sntnl.MasterAddr()
if err != nil { if err != nil {
logErrLogger.Output(2, fmt.Sprintf("get master from sentinel error: %s", err))
return nil, err return nil, err
} }
c, err := redis.Dial("tcp", masterAddr) c, err := redis.Dial("tcp", masterAddr)
if err != nil { if err != nil {
logErrLogger.Output(2, fmt.Sprintf("connect [%s] error: %s", masterAddr, err))
return nil, err return nil, err
} }
@ -146,8 +152,10 @@ func NewPool(cfg Config) *redis.Pool {
} }
if err != nil { if err != nil {
logErrLogger.Output(2, fmt.Sprintf("auth [%s] error: %s", masterAddr, err))
return nil, fmt.Errorf("redis master AUTH failed: <%s>", err.Error()) return nil, fmt.Errorf("redis master AUTH failed: <%s>", err.Error())
} else if okstr != "OK" { } else if okstr != "OK" {
logErrLogger.Output(2, fmt.Sprintf("auth [%s] not return ok but '%s'", masterAddr, okstr))
return nil, fmt.Errorf("redis master AUTH failed: <%s>", okstr) return nil, fmt.Errorf("redis master AUTH failed: <%s>", okstr)
} }
@ -156,6 +164,7 @@ func NewPool(cfg Config) *redis.Pool {
err = fmt.Errorf( err = fmt.Errorf(
"master(%s) got by name '%s' is not redis master", "master(%s) got by name '%s' is not redis master",
masterAddr, masterName) masterAddr, masterName)
logErrLogger.Output(2, err.Error())
return nil, err return nil, err
} }