news 2026/5/7 23:48:28

详解redis(13):数据结构GEO

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
详解redis(13):数据结构GEO

Redis GEO = 用 ZSet + GeoHash,把二维经纬度问题,降维成一维 score 的范围查询问题

核心只有三点:
二维 → 一维(降维)
GeoHash 编码
ZSet 的 score 范围查询

一、为什么 GEO 不直接存经纬度?

经纬度是二维坐标 (lat, lon),而 Redis最擅长的是一维有序数据(ZSet)。

Redis 的思路是:
把二维空间映射成一条“近似保持空间关系的一维曲线”

二、GeoHash 是怎么工作的?

第一步:对二维地图做“区间划分”

先看全球范围:

维度范围
经度-180 ~ 180
纬度-85.05112878 ~ 85.05112878

GeoHash 的做法是:

不断二分经度区间

二分纬度区间

经度、纬度交替进行

第二步:区间编码(GeoHash 编码)

二进制还不方便存,于是:

每 5 位二进制 → 1 个 Base32

Redis 内部不是存字符串形式的 GeoHash,而是:

把 GeoHash 转成一个64 位整数

为什么 GeoHash 能“找附近”?

关键特性:

地理位置相近的点,GeoHash 编码也大概率相近

GEORADIUS/GEOSEARCH是怎么查附近的?

以「查 5km 内的点」为例:

根据中心点算 GeoHash

得到中心点的 GeoHash 区间。

找“周围 8 个格子”

GeoHash 会有边界问题
所以 Redis 会算:

当前格子

上下左右 + 四个角(共 9 个)

转成 score 范围查询

精确距离过滤(很重要)

GeoHash 是近似
所以 Redis最后一步会算真实球面距离

所以结果是精确的

三、场景建模:滴滴叫车到底在查什么?

当你在滴滴上点「叫车」时,系统核心要做三件事:

实时上报车辆位置
从当前位置附近找车
按距离排序,选最近的几辆

这三件事,Redis GEO刚好全部覆盖

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/22 12:58:00

详解redis(16):缓存击穿

一、什么是缓存击穿?缓存击穿:某一个“热点 Key”在某一时刻失效,大量并发请求同时访问这个 Key,导致请求瞬间全部打到数据库,数据库压力骤增。为什么叫“击穿”?缓存是“墙”热点 Key 是“薄弱点”一过期 …

作者头像 李华
网站建设 2026/4/28 0:16:41

9种AI驱动的高效工具组合,助力毕业论文开题报告模板修改

工具对比速览 工具名称 核心功能 适用场景 效率评分 特色优势 AIBiYe 开题报告生成/降重 中文论文全流程 ★★★★★ 国内院校适配度高 AICheck 初稿生成/格式检查 快速产出框架 ★★★★☆ 结构化输出优秀 AskPaper 文献综述辅助 外文文献处理 ★★★★ 跨…

作者头像 李华
网站建设 2026/4/20 22:33:10

针对毕业论文开题报告撰写需求,推荐9款高效AI工具与模板修改方案

工具对比速览 工具名称 核心功能 适用场景 效率评分 特色优势 AIBiYe 开题报告生成/降重 中文论文全流程 ★★★★★ 国内院校适配度高 AICheck 初稿生成/格式检查 快速产出框架 ★★★★☆ 结构化输出优秀 AskPaper 文献综述辅助 外文文献处理 ★★★★ 跨…

作者头像 李华
网站建设 2026/5/2 21:58:03

自主搭建AI系统:全流程硬件配置与实施要点解析

人工智能技术于各行各业越来越深入地应用着,越来越多的组织开始思量着自主去搭建AI系统。这样的部署方式能够更优地满足数据安全、业务定制以及持续优化的需求,然而与此同时也给技术团队提出了更高的要求。一个完整的AI系统搭建牵涉到硬件选型、软件部署…

作者头像 李华
网站建设 2026/5/5 23:32:48

Java毕设选题推荐:基于springboot+vue的校园编程俱乐部学员课程管理系统【附源码、mysql、文档、调试+代码讲解+全bao等】

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

作者头像 李华