redis alone does not offer a solution for this out of the box. But redis has another service called sentinel. Sentinel is a dedicated service that connects to all redis instances in your cluster and is aware of the health of each node.
Under the hood, this is a bit tricky because a sentinel node will return the IP and Port of the current master if the one you’re talking to is not the current master. The client has to establish a new connection to the IP + Port it just received. But that’s just to know how this works under the hood.
Did you try to configure multiple sentinel instances as described at https://docs.openstack.org/tooz/latest/reference/index.html#redis ?
So it would be something like
redis://<sentinel host>:<sentinel port>?sentinel=<master name>& sentinel_fallback=<other sentinel host>:<sentinel port>& sentinel_fallback=<other sentinel host>:<sentinel port> if you have 3 sentinel nodes.
Let’s wait for some others to see if multiple coordination endpoints can be configured.