redis supports pub-sub
zmq also supports pub-sub via a message broker
What would be the architectural pros\cons for choosing between them?
I'm aiming at points which are beyond the obvious use-case specific performance benchmarking that should be done (here's a nice example).
Assume use of a high-level language such as Python.
I have worked with both ZeroMQ and Redis with python. I would say ZeroMQ is more robust, it offers real simple load balancing and also more than pub-sub, like request reply among others. But if you are only after pub-sub, redis is much simpler.
In case the redis server crashes or stops working, all the clients will stop working as well, with ZeroMQ, the clients work even if there is no server.
Both services are available with any programming language, ruby, python, C, C++ and more.
In short, redis is much simpler, very reliable. ZeroMQ is extremely reliable but more complex.
If I was only doing pub sub, I would pick redis, else I would pick ZeroMQ. If I would forsee huge loads of traffic, I would pick ZeroMQ