Add type config.Redis

Redis defines Redis client configuration.
This commit is contained in:
Eric Lippmann 2021-03-03 14:53:27 +01:00
parent 03f26b5b18
commit 140f46af0e

27
pkg/config/redis.go Normal file
View file

@ -0,0 +1,27 @@
package config
import (
"github.com/go-redis/redis/v8"
"github.com/icinga/icingadb/pkg/icingaredis"
"go.uber.org/zap"
"time"
)
// Redis defines Redis client configuration.
type Redis struct {
Address string `yaml:"address"`
Password string `yaml:"password"`
}
// NewClient prepares Redis client configuration,
// calls redis.NewClient, but returns *icingaredis.Client.
func (r *Redis) NewClient(logger *zap.SugaredLogger) (*icingaredis.Client, error) {
c := redis.NewClient(&redis.Options{
Addr: r.Address,
Password: r.Password,
DB: 0, // Use default DB,
ReadTimeout: 30 * time.Second,
})
return icingaredis.NewClient(c, logger), nil
}