news 2026/7/27 13:30:46

详解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/7/26 16:10:31

详解redis(14):数据结构Stream

一、为什么 Redis 一定要出 Stream? 发布订阅(Pub/Sub)的问题 优点 实时 简单 缺陷 不持久化 客户端离线 → 消息直接丢 无法回溯历史消息 本质原因: Pub/Sub 是“广播事件”,不是“存储消息” List 实现消…

作者头像 李华
网站建设 2026/7/19 7:04:21

人群仿真软件:SimWalk_(9).结果分析与可视化

结果分析与可视化 在人群仿真软件中,结果分析与可视化是极为重要的环节。通过这一环节,我们可以直观地理解仿真过程中的各种数据和现象,从而对仿真模型进行优化和改进。本节将详细介绍如何在人群仿真软件中进行结果分析与可视化,…

作者头像 李华
网站建设 2026/7/24 23:45:24

知网AIGC检测不通过?3步搞定从被退到通关

知网AIGC检测不通过?3步搞定从被退到通关 TL;DR:知网AIGC检测被退回不用慌,按这3步操作可以搞定:第一步分析检测报告定位问题段落,第二步用专业工具降AI(嘎嘎降AI达标率99.26%,比话降AI专攻知网…

作者头像 李华
网站建设 2026/7/18 16:37:33

公理化方法

重要的真命题,称为定理引理是预备性命题,为后面的命题证明做准备。推论是指从定理出发,只需几步逻辑推导就能得出命题。

作者头像 李华
网站建设 2026/7/18 6:22:00

大数据领域Kafka的数据备份与恢复

知识金字塔构建者:Kafka数据备份与恢复的底层逻辑与实践指南 1. 引入与连接:当Kafka集群崩溃时,我们该如何拯救数据? 1.1 一个让工程师冒冷汗的场景 想象一下:你是某电商公司的大数据工程师,正值618大促高峰…

作者头像 李华
网站建设 2026/7/21 1:03:42

组织本地化部署AI系统需系统性规划与专业技术知识

随着人工智能技术迅猛发展,越来越多组织着手考虑于本地环境里部署、搭建AI系统。这般本地化地部署,不但能够更为妥善地契合数据安全以及隐私保护的要求,而且还能够依照具体业务需求予以深度定制。然而,AI系统搭建属于一个牵涉硬件…

作者头像 李华