31 lines
544 B
Go
31 lines
544 B
Go
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
|
|
}
|