package common import ( "context" "github.com/go-redis/redis/v8" "log/slog" "os" "time" ) var RDB *redis.Client var RedisEnabled = true // InitRedisClient This function is called after init() func InitRedisClient() (err error) { if os.Getenv("REDIS_CONN_STRING") == "" { RedisEnabled = false slog.Info("redis disabled because REDIS_CONN_STRING is not set") return nil } opt, err := redis.ParseURL(os.Getenv("REDIS_CONN_STRING")) if err != nil { panic(err) } RDB = redis.NewClient(opt) ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second) defer cancel() _, err = RDB.Ping(ctx).Result() return err } func ParseRedisOption() *redis.Options { opt, err := redis.ParseURL(os.Getenv("REDIS_CONN_STRING")) if err != nil { panic(err) } return opt }