Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用redis进行gps定位跟踪的最佳方法是什么_Redis - Fatal编程技术网

使用redis进行gps定位跟踪的最佳方法是什么

使用redis进行gps定位跟踪的最佳方法是什么,redis,Redis,我是redis的新手,为了熟悉它,我正在考虑实施一些项目。我想到的一个有趣的项目是使用redis作为实时gps定位的缓存。唯一让我困惑的是它的实现。我阅读了redia对地理空间数据的支持,但如果我想继续根据某个关键点更新位置点,请允许sey,这似乎是不可能的 我开始使用的一种方法是使用散列结构来存储需要跟踪的设备的lat和long,并继续设置其值,然后更新该值,并将所有这些散列保留在一个集合中。但这似乎不是一个好办法,它也不允许我使用redis提供的地理空间查询 任何关于如何以有效方式实施GEO

我是redis的新手,为了熟悉它,我正在考虑实施一些项目。我想到的一个有趣的项目是使用redis作为实时gps定位的缓存。唯一让我困惑的是它的实现。我阅读了redia对地理空间数据的支持,但如果我想继续根据某个关键点更新位置点,请允许sey,这似乎是不可能的

我开始使用的一种方法是使用散列结构来存储需要跟踪的设备的lat和long,并继续设置其值,然后更新该值,并将所有这些散列保留在一个集合中。但这似乎不是一个好办法,它也不允许我使用redis提供的地理空间查询


任何关于如何以有效方式实施GEOADD的线索。

您只需在具有不同坐标的同一设备id上重复使用GEOADD即可。这将“移动”对象在地理集中的位置,并将立即影响下一个radius查询

127.0.0.1:6379> GEOADD foo 34 32 bar
(integer) 1
127.0.0.1:6379> GEORADIUS foo 34 32 100 m
1) "bar"

# Let's "move" bar in foo to new coordinates
127.0.0.1:6379> GEOADD foo 35 36 bar
(integer) 0
127.0.0.1:6379> GEORADIUS foo 34 32 100 m
(empty list or set)
127.0.0.1:6379> GEORADIUS foo 35 36 100 m
1) "bar"
如果你想要坐标,那也很简单:

127.0.0.1:6379> GEORADIUS foo 35 36 100 m WITHCOORD
1) 1) "bar"
   2) 1) "34.99999791383743286"
  2) "35.99999953955607168"