按需聚合活动历史记录

时间:2012-11-16 14:45:51

标签: mongodb database-design redis

根据他/她关注的对象,有哪些技术可以针对特定用户呈现活动Feed?以下是一些例子:

  • 用户B喜欢用户A的照片
  • 用户B和用户C推荐用户A的图片(基于用户关注的人聚合)
  • 用户B喜欢10张照片:[photo1,photo2等]

Instagram等服务提供了针对特定用户量身定制的活动聚合Feed。我假设为服务器上的每个用户保存单独的订阅源将无法扩展。因此聚合需要按需完成,但必须快速。

是否有mongodb或redis的开源工具可以解决这个问题?

1 个答案:

答案 0 :(得分:1)

可以采取多种方法。

在MongoDB中,一种常见的模式是对某些类型的信息进行预聚合 - 也就是说,在事件发生时更新某些字段或文档,以便在查询时快速回读最终信息。

另一种选择是使用查询 - 常规和聚合框架来“实时”获取数据。

第三个选项可能是运行定期MapReduce作业来计算各种聚合,然后保存它们以便快速访问。这会降低访问速度以实现最终的一致性 - 因为您不会立即看到实时更新的信息。