假设我正在建立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
},
...
]
哪种方法可以最有效地存储哪些用户读取推文的数据,并在为特定用户返回某人的 Feed时检索此数据?
有关数据存储架构的任何想法都受到高度赞赏。我目前的堆栈是PostgreSQL用于存储用户和“推文”。 Redis,MongoDB和neo4j也在项目中使用,因此可用。
第一个猜测是使用Redis,如:
user_id: tweet_id
-----------------
user_id: tweet_id
-----------------
....
但我认为,可能有更好的变体,更适合持久数据存储。
提前谢谢。
答案 0 :(得分:0)
看看Redis的作者antirez(a.k.a Salvatore Sanfilippo)制作的这个Twitter克隆:http://redis.io/topics/twitter-clone