Files
cms-server/data/drivers/redis.go
2026-01-21 16:43:46 +08:00

35 lines
770 B
Go

package drivers
import (
"context"
"log/slog"
"github.com/redis/go-redis/extra/redisotel/v9"
"github.com/redis/go-redis/v9"
)
func Redis(dsn RedisDSN) (redis.UniversalClient, error) {
// Connect to Redis
rdb := redis.NewUniversalClient(&redis.UniversalOptions{
Addrs: dsn.Hosts,
MasterName: dsn.Master,
Username: dsn.Username,
Password: dsn.Password,
DB: dsn.DB,
})
if err := redisotel.InstrumentMetrics(rdb); err != nil {
slog.Error("[Redis] Error starting otel metrics plugin!", "err", err)
}
if err := redisotel.InstrumentTracing(rdb); err != nil {
slog.Error("[Redis] Error starting otel tracing plugin!", "err", err)
}
ctx := context.Background()
// Ping Redis
_, err := rdb.Ping(ctx).Result()
return rdb, err
}