package redis import ( "git.siteworxpro.com/golang/packages/utilities/Env" "github.com/redis/go-redis/v9" "strconv" ) const ( redisHost Env.EnvironmentVariable = "REDIS_HOST" redisHPassword Env.EnvironmentVariable = "REDIS_PASSWORD" redisDb Env.EnvironmentVariable = "REDIS_DB" ) var r = struct { client *redis.Client initialized bool }{} func NewRedis() *redis.Client { if r.initialized { return r.client } db, err := strconv.ParseInt(redisDb.GetEnvString("0"), 10, 64) if err != nil { panic(err) } rdb := redis.NewClient(&redis.Options{ Addr: redisHost.GetEnvString("localhost:6379"), Password: redisHPassword.GetEnvString(""), DB: int(db), }) r.client = rdb return r.client }