0

私はdjangoでソーシャルアプリを構築しています。サイトのアーキテクチャはfacebookに非常に似ています

投稿があり、投稿にはコメントがあります

投稿とコメントの両方に、日付、作成者、タグ、投票などのメタデータが含まれます

新しい機能を簡単に追加できるため、nosql データベースを使用することにしました。

投稿とそのコメントを単一のドキュメントに簡単に保存できるため、mongodb で最終決定しました。この種のアプリでは、REDIS は mongo よりも優れているでしょうか?

更新: mongodb を使用することにしました。必要に応じて、ユーザーのホームページとホームページに redis を使用します。

4

4 に答える 4

2

Redis は MongoDB とは異なり、値のクエリを容易にしないという点で、特定のニーズに合わせて Redis と MongoDB を区別する必要があります。

MongoDB を使用して投稿ドキュメント内にコメントを埋め込むことができます。つまり、単一のクエリで投稿とコメントを取得できますが、タグや作成者などに基づいて投稿ドキュメントをクエリすることもできます。

あなたは間違いなくMongoDBを使いたくなるでしょう。Redis は素晴らしいですが、Redis から必要になると思われるものには適切ではありません。

于 2012-05-01T10:52:01.150 に答える
1

これらは主観的なものであり、さまざまな方向から見ることができます。しかし、すでに nosql ソリューションを使用することに決めていて、mongodb と redis のどちらを使用するかを決定しようとしている場合は、mongodb を使用する方が良いと思います。大量の投稿を保存できるはずであり、mongodb ドキュメントの方が優れているからです。投稿を表すのに適しています。

Redis は最大メモリ制限までしか保存できませんが、超高速です。したがって、何らかのものにインデックスを付ける必要がある場合は、投稿を mongodb に保存してから、投稿の ID を redis に保持して、より高速にアクセスできます。

于 2012-05-01T10:30:42.667 に答える
1

@APC がコメントしたように、大規模なサイトが SQL ソリューションを使用するのには理由があるかもしれません。だからここに私の提案があります:「他の大規模サイトが何をしているかを研究してください」。

たとえば、 Disqusは (そうではないにしても) 最大の django 展開の 1 つであり、ディスカッション/コメントを専門としています。彼らは Postgresql を使用しており、そこで働くDavid Cramer氏は、Postgresql を捨てるつもりはないと述べています。コメントのスケーリングについては、こちらこちらをご覧ください。

あなたのジレンマに対する直接的な回答ではないことは承知していますが、それでも、あなたの興味を引くかもしれません。

于 2012-05-01T19:58:18.817 に答える
0

まず、アプリと永続性を疎結合して、非常に細かいレベルで交換できるようにします。たとえば、ニーズの変化に応じて、1 つのサービスを mongo から redis に移動できるようにしたいとします。サービスを測定し、個別に適切に対応できるようになります。

第 2 に、大規模なアプリケーションのすべてのワークフローに適合する永続化ソリューションを 1 つ見つけることはほとんどありません。複数を使用することを恐れないでください。Mongo は、Redis と同様に、一連の問題に対する優れたツールですが、必ずしも同じ問題であるとは限りません。

于 2012-05-01T20:20:30.840 に答える