Redis的GEO(地理空间)功能是Redis提供的一项功能扩展,它允许将地理位置信息与键关联起来,以便进行地理位置相关的查询和计算。GEO功能主要通过地理位置的经纬度坐标来表示
- GEOADD:添加一个地理空间信息,包含经度(longitude)、纬度(latitude)和值(member)
- 示例:
GEOADD myspace (-30,45) memberA
将成员 A 添加到名为 "myspace" 的空间中。GEOADD myspace (-28,-47) memberB
同样将成员 B 加入该空间。 注意:在使用此命令时,请确保您的地理位置数据是正确的,并且与您所使用的数据库系统兼容。例如,在某些情况下,经纬度的顺序可能会有所不同。
- GEODIST:计算指定两个点之间的距离并返回结果
- 示例:
GEODIST mspace memberA memberB
返回成员 A 和成员 B 之间的欧几里得距离
- GEOHASH:将指定成员的位置转换为哈希字符串形式并返回
- 示例:
GEOHASH memberC
返回成员 C 坐标对应的哈希编码
- GEOPOS:返回指定成员的位置坐标
- 示例:
GEOPOS memberD
返回成员 D 在地图上的精确位置
- GEORADIUS:根据圆心、半径找到该范围内包含的所有成员,并按照与圆心的距离排序后返回
- 示例:
GEORADIUS mspace members radius为中心点(-30,45)
根据给定范围内的所有成员进行搜索,并按距离从近到远排列。
- GEOSEARCH:在指定范围内搜索成员,并按照与指定点之间的距离排序后返回
- 示例:
GEOSEARCH mspace members withinRadius=10 of centerPoint=(-30,45)
查找离中心点最近的成员,其中“radius”参数表示以公里为单位的最大距离限制,“centerPoint”参数指定了查询的中心点。
- GEOSEARCHSTORE:与GEOSEARCH功能一致,不过可以把结果存储在一个指定key下
- 示例:
GEOSEARCHSTORE results key=myresults members=-30,45 withInRadius=10
把查询结果存放在键名 “myresults”的集合中。