【问题标题】:MySQL vs Redis for storing follower/following usersMySQL vs Redis 用于存储关注者/关注用户
【发布时间】:2013-03-14 11:28:56
【问题描述】:

我正在尝试找到存储关注者/关注用户数据的最佳候选者, 我最初想将它存储在 Redis 中的用户 -> 用户 ID 集的集合中,但后来我想到了一个用户有超过 100 万甚至 1000 万关注者的场景,Redis 将如何处理如此庞大的集合?我也无法在 redis 中对集合进行分页,如果用户想要浏览跟随他的人,我必须检索整个集合,这将不起作用。 如果我将它存储在 MySQL 中,我肯定可以进行分页,但是每当我必须构建用户提要时,从数据库中获取 1000 万条记录可能需要很长时间,我可以用旧的批处理方式来做这件事,但每当一个拥有很多关注者的用户会发布一些内容,然后处理这 1000 万条记录将永远只是为了获取他的关注者。 将它存储在 MySQL 中用于分页(主要是前端)和 Redis 中用于构建活动提要的事件驱动消息传递是否值得?

【问题讨论】:

    标签: mysql redis scalability social-networking event-driven


    【解决方案1】:

    这个任务使用redis还是mysql是个人决定。这 1000 万条记录对两者都没有问题。

    MySQL 有 LIMIT x,y 命令用于从数据库中获取关注者的子集。

    对于 redis,您可以使用排序集并使用关注者的用户 ID 或用户开始关注的时间作为排序集的分数。和 MySQL 一样,redis 支持获取大型排序集的子集。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-07-20
      • 1970-01-01
      • 2020-04-12
      • 2018-12-10
      • 1970-01-01
      • 2019-02-26
      • 2013-10-02
      • 1970-01-01
      相关资源
      最近更新 更多