package common import ( "context" "github.com/go-redis/redis/v8" ) var rdb *redis.Client func GetRedis() *redis.Client { if rdb != nil && rdb.Ping(context.Background()).Err() == nil { return rdb } return initRedis() } func initRedis() *redis.Client { redisConfig := GetConfig().Redis rdb = redis.NewClient(&redis.Options{ Addr: redisConfig.Addr, Password: redisConfig.Password, // no password set DB: redisConfig.Database, // use default DB }) ping := rdb.Ping(context.Background()) if err := ping.Err(); err != nil { panic(err.Error()) } return rdb }