0

我计划通过 nodejs 服务器上的 websocket 存储和更新用户位置(lat、lon、userid)。我的目标是尽快将用户位置广播给每个用户。 (比如app中每辆出租车的mytaxi位置)

我的担忧/问题

  1. 许多同时用户的服务器端性能
  2. 推回数据(我只需要知道我所在地区的用户)-> 2d 搜索(获取用户在边界框中的纬度/经度)

问题:

  1. 什么是最好的存储解决方案(mongodb vs js 数组/对象存储)
  2. 数据库上的读/写比数组搜索快吗?
  3. 有 2d 优化的 javascript 搜索解决方案吗?

我的方式

我会选择两个数组(arr1 按 lat 排序,arr2 按 lon 排序)-> 通过分而治之搜索-> 检查相似的 ids-> 输出

有一个更好的方法吗?

提前致谢

亚历克斯

4

1 回答 1

0

您可以使用 Redis 的 pub/sub 频道,为每个边界框创建一个频道,并根据用户的位置报告订阅相关频道,然后将消息推送到整个频道。

这种策略对于大数据来说可能是幼稚的。

于 2013-02-10T13:48:07.293 回答