Redis如何查询附近的人_利用GEORADIUS指令进行Geo范围搜索

GEORADIUS 返回空结果通常因坐标顺序错误,必须经度在前、纬度在后;默认不排序,需加ASC/DESC;单位必须显式指定;同一member重复GEOADD会覆盖旧坐标。GEORADIUS 返回空结果?先检查坐标存入格式是否正确Redis 的 GEORADIUS 不会报错,但返回空数组时,八成是数据没存对------它只接受「经度在前、纬度在后」的顺序,和常见地图 API(如高德、百度)的「纬度在前、经度在后」相反。用 GEOADD 存位置时,必须写成 GEOADD users 116.48 39.92 "uid:1001"(经度 116.48,纬度 39.92)如果误写为 GEOADD users 39.92 116.48 "uid:1001",坐标就飞到南极附近,GEORADIUS 自然查不到可用 GEOPOS 验证:执行 GEOPOS users "uid:1001",看返回的经纬度是否落在合理地理范围内GEORADIUS 查询结果乱序?默认不按距离排序默认情况下,GEORADIUS 返回的是无序集合,不是按"由近到远"排好的。你看到的顺序取决于 Redis 内部哈希桶遍历逻辑,不能依赖。加 ASC 参数才能升序(最近的在前):GEORADIUS users 116.48 39.92 5 km ASC加 DESC 才降序(最远的在前)不带 ASC/DESC 时,即使加了 WITHDIST,距离字段也和元素一一对应,但元素本身不排序如果业务需要分页(比如"加载下一页"),别用 count + 偏移,而应结合 STORE 或 STOREDIST 缓存结果再切片,否则多次查询可能因并发写入导致结果漂移查不到 500 米内的人?注意单位和精度限制GEORADIUS 的距离单位只有 m(米)、km、mi(英里)、ft(英尺)四种,没有 cm 或 nm;而且 Redis Geo 使用的是 Geohash,5 位精度约 2.4km,7 位才到约 19m------它天生不适合亚米级场景。 通义听悟 阿里云通义听悟是聚焦音视频内容的工作学习AI助手,依托大模型,帮助用户记录、整理和分析音视频内容,体验用大模型做音视频笔记、整理会议记录。

相关推荐
Jetev1 小时前
宝塔面板如何实现网站重定向_配置301永久跳转与域名更换
jvm·数据库·python
AI机器学习算法1 小时前
说走就走的AI之旅第01课:浅谈机器学习
数据结构·人工智能·python·深度学习·机器学习·大模型·线性回归
༒࿈南林࿈༒1 小时前
yi欣考研刷题题库js逆向
python·js逆向
精益数智小屋1 小时前
物料管理系统软件有什么用?物料管理系统软件功能详解
大数据·数据库·人工智能·自动化·精益工程
idolao1 小时前
CentOS 7 安装 libtool-1.5.22.tar.gz 详细步骤(源码编译、配置、验证)
开发语言·python
2401_833033621 小时前
c++如何解析二进制协议中的可选字段与默认值读取逻辑实现【实战】
jvm·数据库·python
源码之家1 小时前
计算机毕业设计:Python基于数据挖掘的医院疾病分析与预测系统 Flask框架 数据分析 可视化 ARIMA算法 大数据 大模型(建议收藏)✅
python·信息可视化·数据挖掘·数据分析·flask·lstm·课程设计
Francek Chen1 小时前
【大数据存储与管理】云数据库:02 云数据库产品
大数据·数据库·分布式·云计算·云数据库
ChoSeitaku1 小时前
13.MySQL使用C语言链接及图形化界面
数据库·mysql