Сельдерей: Когда вы должны выбрать Redis в качестве брокера сообщений над RabbitMQ?

Мое грубое понимание заключается в том, что Redis лучше, если вам нужна функция хранения значений в памяти в памяти, однако я не уверен, как это имеет какое-либо отношение к распределению задач?

Означает ли это, что мы должны использовать Redis в качестве брокера сообщений, если мы уже используем его для чего-то еще?

Ответ 1

Я использовал оба недавно (2017-2018), и они оба супер стабильны с Celery 4. Так что ваш выбор может быть основан на деталях вашей настройки хостинга.

  • Если вы должны использовать Celery версии 2 или 3, используйте RabbitMQ. Иначе...
  • Если вы используете Redis по любой другой причине, используйте Redis
  • Если вы пользуетесь хостингом на AWS, используйте Redis, чтобы вы могли использовать управляемый Redis в качестве службы
  • Если вы ненавидите сложные установки, используйте Redis
  • Если у вас уже установлен RabbitMQ, оставайтесь с RabbitMQ

В прошлом я бы порекомендовал RabbitMQ, потому что он был более стабильным и проще в настройке с Celery, чем Redis, но я больше не верю в это.


Обновление 2019

Теперь в AWS есть управляемая служба, эквивалентная RabbitMQ, которая называется Amazon MQ, что может уменьшить головную боль при ее запуске в качестве службы на производстве. Пожалуйста, прокомментируйте ниже, если у вас есть опыт с этим и сельдереем.