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