All times are measured in seconds. Take the results as a reference, as the benchmark
is self made. If I made something wrong I'm more than happy to fix it.
We are going to try it with the same task example but increasing the message size +1MB
Redis
total messages
iter1
iter2
iter3
avg
std
100
70.6913
72.3711
75.6312
72.8979
2.0508
200
141.6594
145.2148
149.5441
145.4728
3.2241
RabbitMQ
total messages
iter1
iter2
iter3
avg
std
100
58.1334
59.5851
60.5988
59.4391
1.0118
200
114.6794
117.0006
122.3457
118.0086
3.2099
Average Times, lower is better
total messages
RabbitMQ
Redis
100
59.4391
72.8979
200
118.0086
145.4728
Standard Deviation, lower is better
total messages
RabbitMQ
Redis
100
1.0118
2.0508
200
3.2099
3.2241
Conclussion
It looks like Redis although it's a great backend, as a broker, it's better RabbitMQ.
I could have made another comparison with priority queues, but as redis does not have that feature, and celery do a python-side implementation with redis, there is no doubt that Rabbit would win that race too.
Besides, Rabbit offers more configuration parameters for queue jobs and persistency.