假设我正在构建 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
-----------------
....
但我认为,可能会有更好的变体,更适合持久化数据存储。
提前谢谢你。
最佳答案
看看 Redis 的作者 antirez(又名 Salvatore Sanfilippo)制作的这个 Twitter 克隆:http://redis.io/topics/twitter-clone
关于database - 存储频繁请求的具有关系的键值数据的有效方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32284382/