【发布时间】:2015-11-23 21:39:16
【问题描述】:
假设我正在构建 Twitter。
其中一项任务是跟踪特定用户阅读了哪些推文并将这些数据存储在服务器上。当用户请求某人的提要时,服务器应该返回:
[
{
id: 1,
tweet: "Hey there!",
isRead: false
},
{
id: 2,
tweet: "Here's my cat, look",
isRead: true
},
{
id: 2,
tweet: "Blue or yellow? Thats the question",
isRead: true
},
...
]
存储哪些用户阅读了哪些推文的数据并在返回特定用户的某人的提要时检索此数据的最有效方法是什么?
高度赞赏有关数据存储架构的任何想法。我当前的堆栈是用于存储用户和“推文”的 PostgreSQL。项目中也用到了Redis、MongoDB和neo4j,所以可用。
第一个猜测是用Redis,比如:
user_id: tweet_id
-----------------
user_id: tweet_id
-----------------
....
但我认为,可能有更好的变体,更适合持久数据存储。
提前谢谢你。
【问题讨论】:
标签: database database-design redis bigdata key-value