如何高效利用GEORADIUS在Redis Geo中查找特定地点附近的人?

2026-05-20 13:220阅读0评论SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1078个文字,预计阅读时间需要5分钟。

如何高效利用GEORADIUS在Redis Geo中查找特定地点附近的人?

GEORADIUS 返回空间结果?八成是经纬度顺序写反了——经度在前,纬度在后,和高度/百度地图 API 相反。

为什么 GEORADIUS 总是返回空数组

Redis 的 GEORADIUS 不会报错,但静默返回空数组,最常见原因是坐标存入时顺序颠倒。它严格要求「经度(longitude)在前、纬度(latitude)在后」,而多数前端地图 SDK(如高德、百度、Leaflet)默认传参是「纬度在前、经度在后」。

  • 正确写法:GEOADD users 116.48 39.92 "uid:1001"(北京朝阳区附近)
  • 错误写法:GEOADD users 39.92 116.48 "uid:1001"(坐标落到南大西洋,接近南极)
  • GEOPOS users "uid:1001" 验证:返回值若为 [39.92, 116.48],说明你存错了——Redis 存的是 [经度, 纬度],但返回格式固定为 [经度, 纬度],别被表象骗了
  • 单位未显式指定也会失败:写 GEORADIUS users 116.48 39.92 500 会报 ERR wrong number of arguments for 'georadius' command,必须带单位,如 500 m

GEORADIUS 查出来的结果为什么不是由近到远

默认不排序。

阅读全文
标签:Redisred

本文共计1078个文字,预计阅读时间需要5分钟。

如何高效利用GEORADIUS在Redis Geo中查找特定地点附近的人?

GEORADIUS 返回空间结果?八成是经纬度顺序写反了——经度在前,纬度在后,和高度/百度地图 API 相反。

为什么 GEORADIUS 总是返回空数组

Redis 的 GEORADIUS 不会报错,但静默返回空数组,最常见原因是坐标存入时顺序颠倒。它严格要求「经度(longitude)在前、纬度(latitude)在后」,而多数前端地图 SDK(如高德、百度、Leaflet)默认传参是「纬度在前、经度在后」。

  • 正确写法:GEOADD users 116.48 39.92 "uid:1001"(北京朝阳区附近)
  • 错误写法:GEOADD users 39.92 116.48 "uid:1001"(坐标落到南大西洋,接近南极)
  • GEOPOS users "uid:1001" 验证:返回值若为 [39.92, 116.48],说明你存错了——Redis 存的是 [经度, 纬度],但返回格式固定为 [经度, 纬度],别被表象骗了
  • 单位未显式指定也会失败:写 GEORADIUS users 116.48 39.92 500 会报 ERR wrong number of arguments for 'georadius' command,必须带单位,如 500 m

GEORADIUS 查出来的结果为什么不是由近到远

默认不排序。

阅读全文
标签:Redisred