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助手,依托大模型,帮助用户记录、整理和分析音视频内容,体验用大模型做音视频笔记、整理会议记录。

相关推荐
净水深流7 小时前
中央厨房冷链技术实践:多温区改造、WMS落地与IoT温控架构
大数据·数据库·人工智能·冷库冷链
l1t8 小时前
测试DuckDB 2.1的match_recognize模式匹配语句
数据库·duckdb
智搜广告8 小时前
智搜广告:科技行业AI回答优化公司如何破局
大数据·python·elasticsearch·geo
IpdataCloud9 小时前
AI智能体调用工具怎么核验来源IP?归属地、网络类型与代理风险识别(含Python代码)
数据库·python·tcp/ip
曹牧9 小时前
Java:SQL 注入漏洞
数据库
2601_966949659 小时前
只拿到股票代码还不够:量化程序到底还需要哪些标的信息?——从数据建模开始理解股票元数据
开发语言·python·数据分析·pandas·量化交易·股票数据·quantdash
蒸鱼Yuzheng9 小时前
Python 游戏测试开发怎么准备:日志解析、接口校验、并发与可维护性
自动化测试·python·测试开发·面试题·游戏测试
Ivanqhz9 小时前
BM1688 双核架构
python·深度学习·神经网络·cnn·mlir
程序员JerrySUN9 小时前
Jetson Edge AI 实战01:Nano、Xavier、Orin 怎么选?Jetson 硬件选型详解【视频讲解】
java·数据库·redis·安全·mybatis
Java后端的Ai之路10 小时前
Python进阶探索17 - Python中的深拷贝与浅拷贝
人工智能·python·ai·浅拷贝·深拷贝