我正在开展一个需要生成用户活动Feed的项目。如果用户A跟随用户B而用户B做了一些活动,则用户A在他的主页上看到它。
现在我正在寻找用于持久保存用户Feed的数据库解决方案。一旦用户B提交某些动作,所有关注用户B的用户将收到记录。我认为为具有对象引用列表的用户保存mongodb文档将比为每个feed记录保存文档更好。
另一方面,会有很多写入甚至更多的读取,而mongodb会对集合进行锁定。也许这可能是一个问题。或者也许Redis可以用于此。而且redis有并发性的东西。我对两者都没有多少经验。
总结问题是什么更适合用于此任务:Mongo,Redis或其他什么?
谢谢!
答案 0 :(得分:8)
请参阅博文:http://www.waistcode.net/blog/mongodb-newsfeed-schema-design-for-entexis 它准确地描述了你正在寻找的东西。恕我直言:这真的很优雅。
几天前,我通过相关问题(MongoDB database schema design)指出了这篇博文。
第h。
答案 1 :(得分:2)
请务必评估neo4j。它是为您描述的许多相同用例创建的。
答案 2 :(得分:2)
Cassandra是自托管活动供稿的可靠选择,尽管通常认为其运行和运营都很复杂。
现在有第三方/托管选项,例如GetStream.io和DynamoDB。