hooyantsing's Blog

18_Geospatial地理位置详解

字数统计: 414阅读时长: 1 min
2020/08/16

18 Geospatial地理位置详解

Redis最新超详细版教程通俗易懂

特点

适用于 地理位置

Geospatial 简称 GEO

GEOADD 向地图里添加一个位置

参数:地图名 经度 纬度 地名

1
GEOADD china:city 121.47 31.23 shanghai

d7a8f6f44150628a55d5be71ff680e61.png

GEOPOS 根据地名查询具体位置

参数:地图名 地名

1
2
3
4
GEOPOS china:city beijing

# 同时获取多个地点位置
GEOPOS china:city beijing chongqing

f4ec73729070dfcc7466c923fcbfdb20.png

GEODIST 返回两个给定位置的距离(直线距离)

指定单位参数 unit 必须是以下单位的其中一个:

  • m 表示单位为米
  • km 表示单位为千米
  • mi 表示单位为英里
  • ft 表示单位为英尺

默认使用米作为单位。

1
2
3
4
GEODIST china:city beijing shanghai

# 单位km千米
GEODIST china:city beijing shanghai km

64997bd3e2584c9c1cc95cdec8038142.png

GEORADIUS 以给定的经纬度为中心,找出某一半径内的元素

附近的人

参数:地图名 中心点经度 中线点纬度 半径值 单位

1
2
3
4
5
6
7
8
9
10
GEORADIUS china:city 110 30 500 km

# 带上相距直线距离
GEORADIUS china:city 110 30 500 km withdist

# 带上经纬度
GEORADIUS china:city 110 30 500 km withcoord

# 限定返回个数使用 count
GEORADIUS china:city 110 30 500 km withcoord count 1

f552d41dc17a7982f883f437c0486f18.png

GEORADIUSBYMEMBER 以某个元素为中心,找出半径内的元素

1
GEORADIUSBYMEMBER china:city beijing 1000 km

d5c0d5ac2fb141467812b7bfcb69a729.png

GEOHASH 返回一个11位字符的字符串,代表某地位置,损失精度

将二维的经纬度转换成一维的字符串,如果两个字符越接近,那么距离越近。

1
GEOHASH china:city beijing chongqing

c92209411d1e8775381c69f1ec639074.png

GEO 底层的实现原理其实是Zset,我们可以使用Zset命令操作GEO。

因此,想要移除一个地点,可以使用 ZREM

1
ZREM china:city beijing
CATALOG
  1. 1. 18 Geospatial地理位置详解