Eventhough redis and message queueing software are usually used for different purposes, I would like to ask pros and cons of using redis for the following use case:
do you know such use cases where redis chosen over traditional message queueing software ? or would you consider something else ?
note: I have also seen this but did not help: Real-time application newbie - Node.JS + Redis or RabbitMQ -> client/server how?
thanks
RabbitMQ vs Redis Conclusion Redis provides fast and in memory capabilities. So, it is best for short retention of messages where persistence is not important. On the other hand, if there is a requirement for complex routing, you should directly opt for RabbitMQ.
At its core, Redis is an in-memory data store that can be used as either a high-performance key-value store or as a message broker.
RabbitMQ is one of the most popular message brokers, with tens of thousands of users. It is a lightweight messaging system that can be deployed on-premises or in the cloud. Besides, it may be deployed in distributed and federated configurations to meet high-scale, high-availability requirements.
Given your requirements I would try Redis. It will perform better than other solutions and give you much finer grained control over the persistence characteristics. Depending on the language you're using you may be able to use a sharded Redis cluster (you need Redis bindings that support consistent hashing -- not all do). This will let you scale out to the volume you indicated. I've seen 10k/sec on my laptop in some basic tests.
You'll probably want to use the list operations in Redis (LPUSH for writes, BRPOP for reads) if you want queue semantics.
I have a former client that deployed Redis in production as a message queue last spring and they've been very happy with it.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With