private ServerEndPoint FindSlave(ServerEndPoint endpoint, RedisCommand command, bool allowDisconnected = false) { if (endpoint.IsSlave && endpoint.IsSelectable(command, allowDisconnected)) { return(endpoint); } var slaves = endpoint.Slaves; var len = slaves.Length; uint startOffset = len <= 1 ? 0 : endpoint.NextReplicaOffset(); for (int i = 0; i < len; i++) { endpoint = slaves[(int)(((uint)i + startOffset) % len)]; if (endpoint.IsSlave && endpoint.IsSelectable(command, allowDisconnected)) { return(endpoint); } } return(null); }