package redis

import (
	"context"
	"errors"
	"github.com/go-redis/redis/v8"
	_ "github.com/spf13/viper/remote"
	"mylomen_server/common/config"
	"time"
)

var client = initClient()

func initClient() *redis.Client {
	redisClient := redis.NewClient(&redis.Options{
		Addr:         config.Instance.Redis.Addr,
		Password:     config.Instance.Redis.Password,
		DB:           config.Instance.Redis.DB,
		ReadTimeout:  time.Duration(config.Instance.Redis.ReadTimeOut) * time.Millisecond,
		WriteTimeout: time.Duration(config.Instance.Redis.WriteTimeout) * time.Millisecond,
	})

	_, err := redisClient.Ping(context.Background()).Result()
	if err != nil {
		panic(errors.New("redis connect ping failed, err:" + err.Error()))
	}

	return redisClient
}