我正在尝试找到存储关注者/关注用户数据的最佳候选者, 我最初想将它存储在 Redis 中用户 -> 用户 ID 集的集合中,但后来我想到了一个用户有超过 100 万甚至 1000 万关注者的场景,Redis 将如何处理如此庞大的集合?我也无法在 redis 中对集合进行分页,我必须检索整个集合,如果用户想浏览跟随他的人,这将不起作用。 如果我将它存储在 MySQL 中,我肯定可以进行分页,但是每当我必须构建用户提要时,从数据库中获取 1000 万条记录可能需要很长时间,我可以以旧的批处理方式执行此操作,但每当拥有许多关注者的用户会发布一些内容,然后处理这 1000 万条记录将花费很长时间才能获取他的关注者。 将它存储在 MySQL 中用于分页(主要是前端)和在 Redis 中用于构建事件提要的事件驱动消息传递是否值得?
最佳答案
是否使用redis 或mysql 来完成此任务是个人决定。对于那 1000 万条记录,两者都没有问题。
MySQL 具有 LIMIT x,y 命令,用于从数据库中获取关注者的子集。
对于 Redis,您可以使用排序集并使用关注者的用户 ID 或用户开始关注的时间作为排序集的分数。和 MySQL 一样,redis 支持获取大型排序集的子集。
关于用于存储关注者/关注用户的 MySQL 与 Redis,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15607084/