我正在开发一个与 Tinder 完全不同的在线服务,但是他们的算法将帮助我了解如何很好地扩展。
我的假设是他们的每个用户都有一skipped
组以前访问过的用户。我不确切知道他们使用什么,可能不是,redis
但是有这个页面解释了 redis 中的实现(不是必需的,但信息丰富)。
我假设从服务器中随机选择一个用户users
,从服务器请求(假设我们不关心年龄、性别等)只是来自您所在位置的人。然后他们检查这个用户是否在skipped
集合中。
现在,如果有人手动或运行机器人跳过每个用户会发生什么。当 的大小skipped
接近users
. 很快,每一次检查都已经完成skipped
,它会进入一个循环,每次只检查一个新的随机用户,并且所有的人都已经看到了。
他们如何保持这个过程快速?必须有一些不仅仅是限制skipped
您拥有的人数,因为也许您跳过了很多永远不会重新上线的人,并且您skipped
的人数比来自users
.