Ho lavorato sia con ZeroMQ che con Redis con Python. Direi che ZeroMQ è più robusto, offre un bilanciamento del carico molto semplice e anche più di pub-sub, come la richiesta di risposta tra gli altri. Ma se cerchi solo pub-sub, redis è molto più semplice.
Nel caso in cui il server redis si arresti in modo anomalo o smetta di funzionare, anche tutti i client smetteranno di funzionare, con ZeroMQ i client funzioneranno anche se non è presente alcun server.
Entrambi i servizi sono disponibili con qualsiasi linguaggio di programmazione, ruby, python, C, C++ e altro.
In breve, redis è molto più semplice, molto affidabile. ZeroMQ è estremamente affidabile ma più complesso.
Se stessi facendo solo pub sub, sceglierei redis, altrimenti sceglierei ZeroMQ. Se prevedessi enormi carichi di traffico, sceglierei ZeroMQ