Comment by tracker1

11 years ago

I'm curious on the separate uses of Redis, RabbitMQ and Memcached... it seems these uses could all just use Redis. And have a lower overall memory/cpu footprint to boot.

Zulip use RabbitMQ for passing messages where persistence is desired; last I checked Redis didn't support persistent on-disk queues.

Zulip's use of redis right now is basically just for the API rate-limiting; it could be easily removed.

  • Redis does have persistence options... I was just thinking Redis is often used as a more advanced memcached, while also supporting pub/sub channels and acting as a mq broker with a frontend... was just thinking in terms of reducing the requisite services, since rabbitmq requires erlang and it's own services as well as memcached.

    http://redis.io/topics/persistence http://python-rq.org/

    • In fairness, your parent introduced the word "persistence" to this discussion, but I think you're misunderstanding queues if you think the two are interchangeable.

      Two things you often want are at-least-once delivery and the ability to queue messages without requiring the consumer to be connected. It requires a fair amount of work to get this to work in Redis. It's not simple configuration.

      1 reply →

    • OK, well, I'd certainly be happy to review a plan to consolidate things (probably the development mailing list is a better place for a detailed discussion) that doesn't hurt performance.