diff --git a/pkg/config/redis.go b/pkg/config/redis.go new file mode 100644 index 00000000..d6a3b2a6 --- /dev/null +++ b/pkg/config/redis.go @@ -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 +}