【问题标题】:Efficient way to store frequently requested key-value data with relations?使用关系存储频繁请求的键值数据的有效方法?
【发布时间】: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


    【解决方案1】:

    看看 Redis 的作者 antirez(又名 Salvatore Sanfilippo)制作的 Twitter 克隆:http://redis.io/topics/twitter-clone

    【讨论】:

      猜你喜欢
      • 2019-07-09
      • 1970-01-01
      • 2014-12-31
      • 2016-05-13
      • 2021-05-07
      • 2015-04-30
      • 1970-01-01
      • 2022-01-13
      • 1970-01-01
      相关资源
      最近更新 更多