我有一个网站,用户选择某个标准来在该网站上找到另一个用户,然后网站将您与同样在寻找具有相同标准的人的其他人配对。有一个“未配对”用户集合(尚未配对),每次有人提出配对请求时,程序都会根据匹配条件检查集合中的下一个可用用户,并删除该用户如果匹配,则从“未配对”集合中提取,如果没有,则将用户添加到“未配对”集合中。
我的问题是,根据以下标准处理此类集合的最佳方法是什么?
- 匹配过程是实时的,所以我使用 SignalR 之类的东西来处理实时配对
- 如果系统关闭,则不需要保留该集合,因为系统已关闭,因此不会有用户“搜索”未配对的用户
- 如果我横向扩展服务器并拥有多个实例,它们都必须能够从同一个集合中拉出
- 如果 2 个用户同时请求处理并发(不知道我是否需要)
当我仔细考虑这个问题时出现的一些标准问题是:
我什至需要一个数据库,因为不断添加和删除用户
如果我确实需要某种存储,像 mongodb 这样的东西会是一个不错的选择吗?为什么?
如果我将集合存储在内存中,那么如果我向外扩展,那将无法跨不同的实例工作,对吗?