package redis

import (
	"context"
	"sync"

	"github.com/go-redis/redis/v8"
	"github.com/tidbcloud/account/commons/config"
	"github.com/tidbcloud/tiinf/monitor/tilog"
)

var accountRedisClient *redis.Client
var onceAccountRedisClient sync.Once

func newAccountRedisClient() (*redis.Client, error) {
	redisConf := config.Global().RedisConfig

	client := redis.NewClient(&redis.Options{
		Addr: redisConf.RedisHost,
		DB:   redisConf.RedisDB,
	})

	tilog.Info(context.Background(), "init account redis client success")

	return client, nil
}
func GetClient() *redis.Client {
	onceAccountRedisClient.Do(func() {
		if accountRedisClient == nil {
			accountRedisClient, _ = newAccountRedisClient()
		}

	})
	return accountRedisClient
}
