私の現在のプロジェクトでは、PostgreSQL をマスター DB として使用し、Redis を一種のスレーブとして使用しています。たとえば、ユーザーが別のユーザーをフレンドとして追加すると、最初に関係が PostgreSQL に保存され、次に Redis のフレンド リストが更新されます。 . 一部のユーザーのフレンド リストが要求されると、PostgreSQL ではなく Redis から取得されます。
問題は、Redis でフレンド リストを更新するとき、PostgreSQL から新しいコピーを取得し、Redis の古いリストを新しいリストに置き換えるか、古いリストを保持してユーザー ID をリストに SADD するだけでよいかということです。後者はもちろんパフォーマンスに最適ですが、直観的には前者の方がデータの整合性を維持するのに適していますか? また、Celery のようなものを使用する場合、2 番目の方法はリスクを負う価値があるでしょうか?