package config import ( "context" "fmt" "log" "time" "github.com/redis/go-redis/v9" ) func GetRedisClient(cfg *Config) *redis.Client { addr := fmt.Sprintf("%s:%d", cfg.RedisHost, cfg.RedisPort) client := redis.NewClient(&redis.Options{ Addr: addr, Password: cfg.RedisPassword, DB: cfg.RedisDB, }) ctx, cancel := context.WithTimeout(context.Background(), 3*time.Second) defer cancel() _, err := client.Ping(ctx).Result() if err != nil { log.Fatalf("❌ Redis connection failed: %v", err) } return client }