package infra import ( "github.com/go-redis/redis" "os" "sync" ) var ( once sync.Once GlobalRedisClient *redis.Client ) // 获取全局的Redis客户端 func InitRedisClient(addr string, password string, db int) { once.Do(func() { // 创建Redis连接 GlobalRedisClient = redis.NewClient(&redis.Options{ Addr: addr, // Redis地址 Password: password, // Redis密码,如果没有密码则留空 DB: db, // Redis数据库索引 }) }) // 检查连接是否成功 _, err := GlobalRedisClient.Ping().Result() if err != nil { GlobalLogger.Error("初始化 Redis 客户端报错:", err) } // 清空当前选择的数据库 err = GlobalRedisClient.FlushDB().Err() if err != nil { GlobalLogger.Errorf("清空 redis 【%v】号库的数据时报错,初始化 Redis 客户端失败,错误信息为:%v", db, err) os.Exit(0) } GlobalLogger.Infof("已清空 redis 【%v】号库的数据,并初始化 Redis 全局客户端成功。", db) }