1
0
mirror of https://github.com/redis/go-redis.git synced 2025-07-31 05:04:23 +03:00

if readonly, read from master when slave is loading

This commit is contained in:
lijunfei
2016-10-09 11:30:01 +08:00
parent 6d51952d43
commit 3cc9b99fb8
2 changed files with 17 additions and 0 deletions

View File

@ -300,6 +300,17 @@ func (c *ClusterClient) Process(cmd Cmder) error {
return nil
}
// If slave is loading, read from master
if errors.IsLoading(cmd.Err()) && c.opt.ReadOnly {
trynode, err := c.slotMasterNode(slot)
if err == nil && trynode != node {
node = trynode
continue
} else {
break
}
}
// On network errors try random node.
if errors.IsRetryable(err) {
node, err = c.randomNode()