openreplay/backend/pkg/redisstream/redis.go
Jorgen Evens e0a88666af feat(redis): add suppport for credentials and TLS
By using `ParseURL` it is now possible to
- Supply login credentials for the redis instance
- Use an encrypted TLS connection by setting the scheme to `rediss://`
2022-11-25 19:16:01 +01:00

36 lines
640 B
Go

package redisstream
import (
"log"
"regexp"
"github.com/go-redis/redis"
"openreplay/backend/pkg/env"
)
var redisClient *redis.Client
func getRedisClient() *redis.Client {
if redisClient != nil {
return redisClient
}
connectionString := env.String("REDIS_STRING")
match, _ := regexp.MatchString("^[^:]+://", connectionString)
if !match {
connectionString = "redis://" + connectionString
}
options, err := redis.ParseURL(connectionString)
if err != nil {
log.Fatalln(err)
}
redisClient = redis.NewClient(options)
if _, err := redisClient.Ping().Result(); err != nil {
log.Fatalln(err)
}
return redisClient
}