* feat(backend): try a new approach for logs formatting (http) * feat(backend): added logger module * feat(backend): added project/session info to /i endpoint * feat(backend): found a solution for correct caller information * feat(backend): finished logs for http handlers * feat(backend): finished logs for mobile http handlers * feat(backend): finished ender * feat(backend): finished assets * feat(backend): finished heuristics * feat(backend): finished image-storage * feat(backend): finished sink * feat(backend): finished storage * feat(backend): formatted logs in all services * feat(backend): finished foss part * feat(backend): added missed foss part * feat(backend): fixed panic in memory manager and sink service * feat(backend): connectors
35 lines
650 B
Go
35 lines
650 B
Go
package redisstream
|
|
|
|
import (
|
|
"regexp"
|
|
|
|
"github.com/go-redis/redis"
|
|
|
|
"openreplay/backend/pkg/env"
|
|
)
|
|
|
|
var redisClient *redis.Client
|
|
|
|
func getRedisClient() (*redis.Client, error) {
|
|
if redisClient != nil {
|
|
return redisClient, nil
|
|
}
|
|
|
|
connectionString := env.String("REDIS_STRING")
|
|
|
|
match, _ := regexp.MatchString("^[^:]+://", connectionString)
|
|
if !match {
|
|
connectionString = "redis://" + connectionString
|
|
}
|
|
|
|
options, err := redis.ParseURL(connectionString)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
redisClient = redis.NewClient(options)
|
|
if _, err := redisClient.Ping().Result(); err != nil {
|
|
return nil, err
|
|
}
|
|
return redisClient, nil
|
|
}
|