// Package config Redis配置
package config

import (
	"context"
	"fmt"
	"log"
	"time"

	"github.com/redis/go-redis/v9"
)

// RDB 全局Redis客户端
var RDB *redis.Client

// InitRedis 初始化Redis连接
func InitRedis() {
	redisConfig := AppConfig.Redis
	RDB = redis.NewClient(&redis.Options{
		Addr:     redisConfig.Addr,
		Password: redisConfig.Password,
		DB:       redisConfig.DB,
		PoolSize: 10, // 连接池大小
	})

	// 测试连接
	ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
	defer cancel()

	_, err := RDB.Ping(ctx).Result()
	if err != nil {
		log.Fatal("Redis连接失败:", err)
	}
	fmt.Println("Redis连接成功")
}

// CloseRedis 关闭Redis连接
func CloseRedis() {
	if RDB != nil {
		RDB.Close()
		fmt.Println("Redis连接已关闭")
	}
}
