2012-11-16 3 views
0

따라야 할 사람에 따라 특정 사용자에게 맞는 활동 피드를 제시하는 몇 가지 기술은 무엇입니까? 다음은 몇 가지 예는 다음과 같습니다요구에 따라 활동 기록 집계

  • 사용자 B는
  • 사용자 B 및 사용자 C는 사용자 B (10 개) 사진을 좋아
  • 사용자 A의 그림 (사용자가 다음 사람을 기준으로 집계)에 칭찬 사용자 A의 사진을 좋아했다 : [사진 1, 사진 2 등]

Instagram과 같은 서비스는 특정 사용자에게 맞춤 설정된 활동 집계를 제공합니다. 서버의 각 사용자에 대해 별도의 피드를 저장하면 크기가 조정되지 않는다고 가정합니다. 따라서 집계는 필요에 따라 수행해야하지만 빠르게 수행해야합니다.

mongodb 또는 redis 용 오픈 소스 도구가 있습니까?

답변

1

여러 가지 방법을 사용할 수 있습니다.

MongoDB에서 일반적인 패턴은 특정 유형의 정보에 대해 사전 집계를 수행하는 것입니다. 즉, 이벤트가 발생하면 쿼리가 완료 될 때 최종 정보 만 빨리 읽도록 필드 또는 문서를 업데이트하는 것입니다.

다른 옵션은 "실시간"으로 데이터를 가져 오기 위해 일반 및 Aggregation Framework 쿼리를 사용하는 것입니다.

세 번째 옵션은 정기적 인 MapReduce 작업을 실행하여 다양한 집계를 계산 한 다음 빠른 액세스를 위해 저장하는 것입니다. 실시간으로 즉시 업데이트되는 정보는 볼 수 없으므로 궁극적 인 일관성을 위해 액세스 속도가 떨어집니다.