通过对接队列中的排名来匹配用户

时间:2018-11-22 16:44:03

标签: architecture queue multiplayer matchmaking

假设您想让玩家加入队列,玩家数据看起来像这样:

{
  playerID: 123,
  name: "mr peanut",
  ranking: 1337
}

处理队列中与之匹配的x个相似球员的最佳方法是什么?

I.E。我试图找到所有排名+/- 10的玩家,但没有一个,所以我等着,如果排队时间足够长,我会更改为+/- 15,依此类推直至上限。 >

我的想法是将玩家数据存储到内置Redis的队列中,并让工作进程不断扫描队列以寻找匹配项。但是我很好奇,如果有一些最佳实践,教程或一般性想法可以帮助我学习,以便我可以有一个更好的想法。

要求:它必须能够扩展,并且理想情况下使用少量开销,扫描乍一看似乎有些荒谬且效率低下,这使我认为redis可能不是最好的主意。 谢谢!

0 个答案:

没有答案