package database import ( "context" "fmt" "github.com/EthanCodeCraft/xlgo-core/config" "github.com/EthanCodeCraft/xlgo-core/logger" "github.com/redis/go-redis/v9" "go.uber.org/zap" ) var ( // RedisClient 全局 Redis 客户端 RedisClient *redis.Client ) // InitRedis 初始化 Redis 连接 func InitRedis(cfg *config.Config) error { RedisClient = redis.NewClient(&redis.Options{ Addr: cfg.Redis.Addr(), Password: cfg.Redis.Password, DB: cfg.Redis.DB, }) // 测试连接 ctx := context.Background() if err := RedisClient.Ping(ctx).Err(); err != nil { return fmt.Errorf("Redis 连接失败: %w", err) } logger.Info("Redis 连接成功", zap.String("addr", cfg.Redis.Addr())) return nil } // CloseRedis 关闭 Redis 连接 func CloseRedis() error { if RedisClient != nil { return RedisClient.Close() } return nil } // GetRedis 获取 Redis 客户端 func GetRedis() *redis.Client { return RedisClient }