The docs say:

Pause the clients using CLIENT PAUSE Wait a few seconds to make sure the replicas processed the latest replication stream from the master.

Generally speaking just waiting isn't enough for verifying replica(s) caught up, there should be a way to compare replication offset to master's but currently "pause" won't allow that.

Comment From: madolson

You can use the master_repl_offset from redis info to verify the replica is caught up. As per the documentation, if you issues: MULTI INFO replication CLIENT PAUSE 600000 EXEC

You will have a point in the time of the master replication offset. You then just need to wait for the replica to have the same master_repl_offset as the master before converting it into a master.

It would be nice if normal redis supported a single automatic failover command the same way that redis cluster does with "CLUSTER FAILOVER".

Comment From: poige

info before client pause, are you joking, aren't you?

Comment From: poige

Also, even if wrapping it up into Multi-Exec guarantees atomicity I'm talking about completely different thing. INFO shouldn't be put on hold when PAUSE is active.