redis.go 871 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. package database
  2. import (
  3. "context"
  4. "fmt"
  5. "time"
  6. "github.com/go-redis/redis/v8"
  7. "newaterobot-process/config"
  8. )
  9. var RedisClient *redis.Client
  10. // InitRedis 初始化Redis连接
  11. func InitRedis() error {
  12. redisConfig := config.GlobalConfig.Redis
  13. // 创建Redis客户端
  14. RedisClient = redis.NewClient(&redis.Options{
  15. Addr: fmt.Sprintf("%s:%d", redisConfig.Host, redisConfig.Port),
  16. Password: redisConfig.Password,
  17. DB: redisConfig.DB,
  18. PoolSize: redisConfig.PoolSize,
  19. })
  20. // 测试连接
  21. ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
  22. defer cancel()
  23. _, err := RedisClient.Ping(ctx).Result()
  24. if err != nil {
  25. return fmt.Errorf("failed to connect to Redis: %v", err)
  26. }
  27. return nil
  28. }
  29. // CloseRedis 关闭Redis连接
  30. func CloseRedis() error {
  31. if RedisClient != nil {
  32. return RedisClient.Close()
  33. }
  34. return nil
  35. }