追随者系统,在MySQL或Redis中更好?

use*_*411 2 mysql database nosql redis

我只是想知道选择实施跟随系统的解决方案是什么?

在MySQL中我会有一个表

userID INT PRIMARY,
followID INT PRIMARY
Run Code Online (Sandbox Code Playgroud)

在Redis中,我只使用SET并将所有followID添加到UserID.

什么会更快,让我们说有2000个粉丝,你想列出所有的粉丝?(在一个有大约1M条目的表中)如果两个用户互相追随,会更快找到什么?

非常感谢你!

Did*_*zia 5

按现代标准,1M项目都不算什么.任何数据库或NoSQL系统都可以正常使用这样的音量,因此您只需选择最适合的音量.

就绝对性能而言,Redis在这个用例上将比MySQL快,因为:

  • 整个数据集将在内存中
  • 哈希表比btree快
  • 没有要解析或执行的SQL查询

但请注意,关系数据库比Redis等键/值存储更灵活.如果您可以预测数据的所有访问路径,那么Redis是一个很好的解决方案.否则,更传统的数据库将为您提供更好的服务.