7

我正在开发一个需要生成用户活动提要的项目。如果用户 A 关注用户 B 并且用户 B 做了一些活动,用户 A 在他的主页上看到它。

现在我正在寻找一种用于持久化用户提要的数据库解决方案。一旦用户 B 提交了某个操作,所有关注用户 B 的用户都会收到一条记录。我认为为具有对象引用列表的用户保存一个 mongodb 文档比为每个提要记录保存一个文档要好。

另一方面,会有很多写入,甚至更多的读取,并且 mongodb 对一个集合有一个锁。也许这可能是个问题。或者也许 Redis 可以用于此。并且 redis 具有并发性。我对两者都没有多少经验。

总结的问题是什么会更好地用于此任务:Mongo、Redis 或其他什么?

谢谢!

4

3 回答 3

8

请参阅博文:http ://www.waistcode.net/blog/mongodb-newsfeed-schema-design-for-entexis ,它准确地描述了您正在寻找的内容。恕我直言:它真的很优雅。

几天前,我通过一个相关问题( MongoDB 数据库模式设计)向我指出了那篇博文。

hth。

于 2012-06-11T14:27:56.323 回答
2

一定要评估neo4j。它是为您描述的许多相同用例而创建的。

于 2012-06-11T06:41:59.800 回答
2

Cassandra是自托管活动源的一种经过验证的选择,尽管它通常被认为运行和操作很复杂。

现在有 3rd 方/托管选项,例如GetStream.ioDynamoDB

于 2018-01-26T13:29:02.620 回答