MCPcopy
hub / github.com/redis/go-redis / RandomReplicaAddr

Method RandomReplicaAddr

sentinel.go:869–890  ·  view source on GitHub ↗
(ctx context.Context)

Source from the content-addressed store, hash-verified

867}
868
869func (c *sentinelFailover) RandomReplicaAddr(ctx context.Context) (string, error) {
870 if c.opt == nil {
871 return "", errors.New("opt is nil")
872 }
873
874 addresses, err := c.replicaAddrs(ctx, false)
875 if err != nil {
876 return "", err
877 }
878
879 if len(addresses) == 0 && c.opt.UseDisconnectedReplicas {
880 addresses, err = c.replicaAddrs(ctx, true)
881 if err != nil {
882 return "", err
883 }
884 }
885
886 if len(addresses) == 0 {
887 return c.MasterAddr(ctx)
888 }
889 return addresses[rand.Intn(len(addresses))], nil
890}
891
892func (c *sentinelFailover) MasterAddr(ctx context.Context) (string, error) {
893 c.mu.RLock()

Callers 1

masterReplicaDialerFunction · 0.80

Calls 2

replicaAddrsMethod · 0.95
MasterAddrMethod · 0.95

Tested by

no test coverage detected