package internal import ( "context" "github.com/redis/go-redis/v9" "log" "os" "strconv" ) var ( redisInstance *redis.Client = nil ) type Cache interface { } func InitRedis() *redis.Client { if redisInstance == nil { redis_db_num, err := strconv.Atoi(os.Getenv("REDIS_DATABASE")) if err != nil { log.Fatalln("REDIS_DATABASE should be integer") } redisInstance = redis.NewClient(&redis.Options{Addr: os.Getenv("REDIS_ADDRESS"), Password: os.Getenv("REDIS_PASSWORD"), DB: redis_db_num}) _, conError := redisInstance.Ping(context.Background()).Result() if conError != nil { log.Fatalln("Cannot connect to redis host") } } return redisInstance }