私の大まかな理解では、メモリ内のキー値ストア機能が必要な場合は Redis の方が適していると思いますが、それがタスクの分散とどう関係するのかよくわかりません。
つまり、すでに他の用途で Redis を使用している場合は、Redis をメッセージ ブローカーとして使用する必要があるということですか?
ベストアンサー1
私は最近(2017-2018)両方を使用しましたが、どちらも Celery 4 で非常に安定しています。したがって、ホスティング設定の詳細に基づいて選択できます。
- Celery バージョン 2 またはバージョン 3 を使用する必要がある場合は、RabbitMQ を使用してください。それ以外の場合は...
- 他の理由でRedisを使用している場合は、Redisを使用してください。
- AWSでホスティングしている場合は、Redisを選択して、マネージドRedisをサービスとして利用できるようにします。
- 複雑なインストールが嫌ならRedisを
- すでにRabbitMQがインストールされている場合は、RabbitMQを使い続けてください。
以前は、Redis よりも安定していて Celery でセットアップするのが簡単だったため、RabbitMQ を推奨していましたが、今ではそうではないと思います。
2019年アップデート
AWS には現在、Amazon MQ と呼ばれる RabbitMQ と同等のマネージド サービスがあり、これを本番環境でサービスとして実行する際の負担を軽減できます。これと celery に関する経験があれば、以下にコメントしてください。