aqi/store/use_redis.go
2024-06-18 18:09:39 +08:00

41 lines
656 B
Go

package store
import (
"github.com/redis/go-redis/v9"
"github.com/spf13/viper"
"github.com/wonli/aqi/config"
)
type RedisStore struct {
configKey string
}
func (s *RedisStore) Config() *config.Redis {
var r *config.Redis
err := viper.UnmarshalKey(s.configKey, &r)
if err != nil {
return nil
}
return r
}
func (s *RedisStore) Use() *redis.Client {
r := s.Config()
if r == nil {
return nil
}
client := redis.NewClient(&redis.Options{
Addr: r.Addr,
Username: r.Username,
Password: r.Pwd,
DB: r.Db,
MinIdleConns: r.MinIdleConns,
ConnMaxIdleTime: r.IdleTimeout,
})
return client
}