MySQL vs Redis用于存储关注者/关注用户

时间:2013-03-25 03:21:44

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

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

1 个答案:

答案 0 :(得分:0)

是否使用redis或mysql执行此任务是个人决定。这两千万条记录都没有问题。

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

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