2012-06-11 16 views
7

私は、ユーザーアクティビティフィードの生成が必要なプロジェクトで作業中です。ユーザーAがユーザーBに続き、ユーザーBが何らかのアクティビティーを行った場合、ユーザーAは自分のホームページでそれを見ます。ユーザーアクティビティフィード用のDBソリューション

私は、永続的なユーザーフィード用のDBソリューションを探しています。ユーザーBが何らかのアクションをコミットすると、ユーザーBに従うすべてのユーザーがレコードを受信します。私はオブジェクト参照のリストを持つユーザーのためのmongodb文書を保存することは、各フィードレコードのための文書を保存するよりも良いと思う。

一方、多くの書き込みがあり、さらに多くの読み込みが行われ、mongodbはコレクションをロックします。たぶんこれは問題かもしれません。それとも、レディスがこれに使用されるかもしれない。並行性のあるものを赤字化します。私は両方で多くの経験はありません。

このタスクには、Mongo、Redis、または何か他のものを使用する方がよいでしょうか?

ありがとうございました!

+0

データベースプラットフォームがまだ選択されていないようですか? (そうでなければ、最初の読書時には、既存のデータベースを持っていて、トリガーなどの何らかのデータ変更イベント通知が必要なように最初は聞こえました)。これが初期の分析段階にあり、特定のデータベース技術にコミットする前に、全体的なアーキテクチャー/設計(および要件)を完成させることができます(そして、MongoとRedisは全く異なります:1つはインメモリー・キャッシュ、その他は永続的なストアです) – michael

+0

どのようなプログラミング言語を使用しますか? – brycemcd

+0

@Bryce私はPythonを使用しています。 –

答えて

2

neo4jを必ずご確認ください。それはあなたが記述している同じユースケースの多くのために作成されました。

+1

グラフベースのDbは、「友人の友人」に関連するものを計算するときに本当に輝きます。つまり、グラフ内に1つ以上のエッジをトラバースします。それはここのケースではないようです –

2

Cassandraは、通常、実行して操作するのが複雑であると考えられていますが、自己ホスト型アクティビティフィードの実績のある選択肢です。

今日は、GetStream.ioDynamoDBなどのサードパーティ/ホストのオプションがあります。

関連する問題