MCPcopy Create free account
hub / github.com/authorizerdev/authorizer / NewRedisProvider

Function NewRedisProvider

internal/memory_store/redis/provider.go:53–100  ·  view source on GitHub ↗

NewRedisProvider returns a new redis provider

(cfg *config.Config, deps *Dependencies)

Source from the content-addressed store, hash-verified

51
52// NewRedisProvider returns a new redis provider
53func NewRedisProvider(cfg *config.Config, deps *Dependencies) (*provider, error) {
54 redisURLHostPortsList := strings.Split(cfg.RedisURL, ",")
55 if len(redisURLHostPortsList) > 1 {
56 opt, err := redis.ParseURL(redisURLHostPortsList[0])
57 if err != nil {
58 deps.Log.Debug().Err(err).Msg("error parsing redis url")
59 return nil, err
60 }
61 urls := []string{opt.Addr}
62 urlList := redisURLHostPortsList[1:]
63 urls = append(urls, urlList...)
64 clusterOpt := &redis.ClusterOptions{Addrs: urls, DialTimeout: dialTimeout}
65 rdb := redis.NewClusterClient(clusterOpt)
66 ctx := context.Background()
67 _, err = rdb.Ping(ctx).Result()
68 if err != nil {
69 deps.Log.Debug().Err(err).Msg("error connecting to redis")
70 return nil, err
71 }
72
73 return &provider{
74 config: cfg,
75 dependencies: deps,
76 ctx: ctx,
77 store: rdb,
78 }, nil
79 }
80
81 opt, err := redis.ParseURL(cfg.RedisURL)
82 if err != nil {
83 deps.Log.Debug().Err(err).Msg("error parsing redis url")
84 return nil, err
85 }
86 opt.DialTimeout = dialTimeout
87 rdb := redis.NewClient(opt)
88 ctx := context.Background()
89 _, err = rdb.Ping(ctx).Result()
90 if err != nil {
91 deps.Log.Debug().Err(err).Msg("error connecting to redis")
92 return nil, err
93 }
94 return &provider{
95 config: cfg,
96 dependencies: deps,
97 ctx: ctx,
98 store: rdb,
99 }, nil
100}

Callers 1

NewFunction · 0.92

Calls

no outgoing calls

Tested by

no test coverage detected