新增一个配置选项为redisClient

This commit is contained in:
coward 2021-12-10 16:08:46 +08:00
parent 94a005b4b6
commit 28f36b50ff

View File

@ -12,6 +12,7 @@ type config struct {
Port string
Password string
DB int
Client *redis.Client
}
type Option func(ca *config)
@ -34,6 +35,12 @@ func WithPassword(password string) Option {
}
}
func WithRedisClient(client *redis.Client) Option {
return func(ca *config) {
ca.Client = client
}
}
func WithDB(db int) Option {
return func(ca *config) {
ca.DB = db
@ -65,11 +72,16 @@ func NewCache(opts ...Option) Cache {
rClient := new(cache)
rClient.client = redis.NewClient(&redis.Options{
Addr: fmt.Sprintf("%s:%s", cha.Host, cha.Port),
Password: cha.Password,
DB: cha.DB,
})
if cha.Client == nil {
rClient.client = redis.NewClient(&redis.Options{
Addr: fmt.Sprintf("%s:%s", cha.Host, cha.Port),
Password: cha.Password,
DB: cha.DB,
})
} else {
rClient.client = cha.Client
}
rClient.ctx = context.Background()