首页/数据/数据库速查/GEO 地理位置命令(GEOADD/GEODIST/GEOSEARCH)
本包目录(495 条)
MySQL 基础与连接36 条SQL 语法52 条用户与权限21 条备份与恢复56 条主从复制与高可用53 条性能与调优57 条
Redis 命令96 条
Redis 运维与场景124 条

GEO 地理位置命令(GEOADD/GEODIST/GEOSEARCH)

GEO 系列把经纬度存进 ZSet(score 为 geohash)并支持距离与范围检索:GEOADD 写入、GEODIST 测距、GEOSEARCH 找附近成员。

数据库速查数据更新于 2026-10-12

写入与检索

写入与检索
GEOADD shops 116.404 39.915 shop:a 121.474 31.230 shop:b
GEODIST shops shop:a shop:b km           # -> 约 1067
GEOSEARCH shops FROMMEMBER shop:a BYRADIUS 5 km ASC COUNT 10 WITHDIST
GEOSEARCH shops FROMLONLAT 116.40 39.91 BYBOX 10 10 km ASC
GEOPOS shops shop:a
GEOHASH shops shop:a
底层ZSet:score=geohash,可直接 ZRANGE/ZREM
参数顺序longitude latitude(先经度后纬度)
单位m / km / ft / mi
版本6.2+ 推荐 GEOSEARCH 替代 GEORADIUS
「附近的人/店」分页:GEO 本身无游标分页,常用「COUNT + 逐步扩大半径」或配合业务侧缓存。

易错点

  • 经纬度顺序写反:GEODIST 结果离谱还不报错
  • 纬度超出 ±85.05 度会报错(GEO 用固定范围编码)

数据来源与参考

  • Redis 官方文档: GEOADD
  • Redis 官方文档: GEOSEARCH

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌