diff --git a/cache.go b/cache.go index bae5569..70acf08 100644 --- a/cache.go +++ b/cache.go @@ -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()