i_redis.go 1009 B

123456789101112131415161718192021222324252627282930313233343536
  1. package infra
  2. import (
  3. "github.com/go-redis/redis"
  4. "os"
  5. "sync"
  6. )
  7. var (
  8. once sync.Once
  9. GlobalRedisClient *redis.Client
  10. )
  11. // 获取全局的Redis客户端
  12. func InitRedisClient(addr string, password string, db int) {
  13. once.Do(func() {
  14. // 创建Redis连接
  15. GlobalRedisClient = redis.NewClient(&redis.Options{
  16. Addr: addr, // Redis地址
  17. Password: password, // Redis密码,如果没有密码则留空
  18. DB: db, // Redis数据库索引
  19. })
  20. })
  21. // 检查连接是否成功
  22. _, err := GlobalRedisClient.Ping().Result()
  23. if err != nil {
  24. GlobalLogger.Error("初始化 Redis 客户端报错:", err)
  25. }
  26. // 清空当前选择的数据库
  27. err = GlobalRedisClient.FlushDB().Err()
  28. if err != nil {
  29. GlobalLogger.Errorf("清空 redis 【%v】号库的数据时报错,初始化 Redis 客户端失败,错误信息为:%v", db, err)
  30. os.Exit(0)
  31. }
  32. GlobalLogger.Infof("已清空 redis 【%v】号库的数据,并初始化 Redis 全局客户端成功。", db)
  33. }