Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
只是想知道你们如何使用 nosql(如 redis)来做一个像简单的 facebook 这样的 feed 聚合器。
基本上你有很多个人资料,每个个人资料都有自己的提要。每次用户请求聚合时,系统只会获取所有这些配置文件,处理它们(并将它们分组),然后显示给用户。这种方法的问题是当某人有 1000 个朋友时,系统必须获取 1000 个提要(无论是否有任何更新)然后处理它们。
你们会怎么做呢?
显然,如果您不能实时进行更新,则需要在用户要求之前完成更新 - 基本上,您有一个所有已知提要的列表,并定期检查更新,可能基于更新每次进给的频率。当用户请求聚合时,您只需返回已有的数据。
确保数据是合理最新的有点棘手。如果你是谷歌,你可以每隔几分钟检查一次整个互联网——这对大多数人来说不是一个选择。但是,您可以通过结合智能更新计划和使用可用的实时 API 来合理地接近实时。对于类似的事情,我正在研究的基本架构是一个数据存储,其中包含所有帖子和许多可以从特定类型的提要中提取数据并以通用格式将帖子添加到数据存储的进程。