0

特定のユーザーが誰をフォローしているかに応じて、特定のユーザーに合わせたアクティビティ フィードを表示するためのテクニックは何ですか? ここではいくつかの例を示します。

  • ユーザー B がユーザー A の写真を高く評価しました
  • ユーザー B とユーザー C は、ユーザー A の写真を称賛しました(ユーザーがフォローしているユーザーに基づく集計)
  • ユーザー B が 10 枚の写真を高く評価しました: [写真 1、写真 2 など]

Instagram などのサービスは、特定のユーザーに合わせて調整されたアクティビティの集計を含むフィードを提供します。サーバー上のユーザーごとに個別のフィードを保存しても、スケーリングされないと思います。したがって、集計はオンデマンドで実行する必要がありますが、高速である必要があります。

これを処理するように設計されたmongodbまたはredis用のオープンソースツールはありますか?

4

1 に答える 1

2

取るべきアプローチは複数あります。

MongoDB では、一般的なパターンは、特定の種類の情報を事前に集計することです。つまり、イベントが発生したときに一部のフィールドまたはドキュメントを更新して、クエリ時に最終的な情報のみをすばやく読み戻すようにします。

もう 1 つのオプションは、通常のクエリと集計フレームワークを使用して、「リアルタイムで」データを取得することです。

3 番目のオプションは、定期的な MapReduce ジョブを実行してさまざまな集計を計算し、高速アクセスのために保存することです。これにより、結果整合性のためにアクセス速度が犠牲になります。情報がリアルタイムですぐに更新されるわけではないためです。

于 2012-11-20T18:18:53.087 に答える