⑦【Redis GEO 】Redis常用数据类型:GEO [使用手册]

个人简介:Java领域新星创作者;阿里云技术博主、星级博主、专家博主;正在Java学习的路上摸爬滚打,记录学习的过程~

个人主页:.29.的博客

学习社区:进去逛一逛~

Redis GEO

  • [⑦Redis GEO 基本操作命令](#⑦Redis GEO 基本操作命令)
      • [1.geoadd 存储指定的地理空间位置(精度、维度、位置名称)](#1.geoadd 存储指定的地理空间位置(精度、维度、位置名称))
      • [2.geopos 返回指定位置名称的经度和纬度](#2.geopos 返回指定位置名称的经度和纬度)
      • [3.geohash 获取保存位置的geohash值](#3.geohash 获取保存位置的geohash值)
      • [4.geodist 返回两个位置元素之间的距离(单位:m|km|ft|mi)](#4.geodist 返回两个位置元素之间的距离(单位:m|km|ft|mi))
      • [5.georadius 获取key中指定经纬度范围内的所有位置元素(给定经纬度)](#5.georadius 获取key中指定经纬度范围内的所有位置元素(给定经纬度))
      • [6.georadiusbymember 获取key中指定范围内的所有位置元素(给定位置元素)](#6.georadiusbymember 获取key中指定范围内的所有位置元素(给定位置元素))

⑦Redis GEO 基本操作命令


  • Redis GEO主要用于存储地理位置信息,并对存储的选项进行操作:
  • 1.添加地理位置的坐标
  • 2.获取地理位置的坐标
  • 3.计算两个地理位置间的距离
  • 4.根据用户给定的经纬度坐标来获取指定范围内的地理位置集合。

中文乱码处理

bash 复制代码
redis-cli -a 123456 --raw
# redis-cli进入redis控制台,-a输入密码,--raw避免中文乱码问题

1.geoadd 存储指定的地理空间位置(精度、维度、位置名称)


  • geoadd用于存储指定的地理空间位置到key中,语法:

geoadd key [NX|XX] [CH] longitude latitude member [longitude latitude member ...]

  • longitude ------ 精度
  • latitude ------ 维度
  • member ------ 位置名称
bash 复制代码
geoadd city 121.48941 31.40527 "广州"

2.geopos 返回指定位置名称的经度和纬度


  • geopos用于从指定key中返回所有指定位置名称的经度和纬度,不存在返回nil

geopos key member [member ...]

bash 复制代码
geopos city 广州 # 获取空间名称"广州"的经纬度
geopos city 深圳 # 没有存储"深圳"的空间名称,返回nil

3.geohash 获取保存位置的geohash值


  • Redis GEO 使用geohash来保存地理位置的坐标
  • geohash用于获取一个或多个位置元素的geohash值
  • geohash算法生成的是base32编码值,过程:

geohash key member [member ...]

bash 复制代码
# 获取key:city中位置元素"广州"的geohash值
geohash city "广州"

4.geodist 返回两个位置元素之间的距离(单位:m|km|ft|mi)


  • geodist 用于返回两个给定位置间的距离

geodist key member1 member2 [M|KM|FT|MI]

  • m ------ 米
  • km ------ 千米
  • ft ------ 英尺
  • mi ------ 英里
bash 复制代码
geodist city 广州 上海 KM
geodist city 广州 上海 M
geodist city 广州 上海 FT
geodist city 广州 上海 MI

5.georadius 获取key中指定经纬度范围内的所有位置元素(给定经纬度)


  • georadius 以给定的经纬度为中心 , 返回键包含的位置元素当中, 与中心的距离不超过给定最大距离的所有位置元素。

georadius key longitude latitude radius M|KM|FT|MI [WITHCOORD] [WITHDIST] [WITHHASH] [COUNT count [ANY]] [ASC|DESC] [STORE key] [STOREDIST key]

  • longitude :经度
  • latitude :维度
  • radius : 最大距离
  • WITHDIST :在返回位置元素的同时, 将位置元素与中心之间的距离也一并返回。 距离的单位和用户给定的范围单位保持一致。
  • WITHCOORD : 将位置元素的经度和维度也一并返回。
  • WITHHASH : 以 52 位有符号整数的形式, 返回位置元素经过原始 geohash 编码的有序集合分值。
  • COUNT count :限定返回的最大记录数。
bash 复制代码
# 键:city
# 经度和纬度:121.48941010236740112 31.40526993848380499
# 以经纬度为中心,向外扩张的最大距离:2000
# 单位:km
# withcoord:将获取到的位置元素的经纬度一并返回
# withdist:返回坐标元素与给定经纬度中心的距离
georadius city 121.48941010236740112 31.40526993848380499 2000 km withcoord withdist count 2

6.georadiusbymember 获取key中指定范围内的所有位置元素(给定位置元素)


  • 找出位域指定范围内的元素,中心点是由给定的位置元素决定的

georadiusbymember key member radius M|KM|FT|MI [WITHCOORD] [WITHDIST] [WITHHASH] [COUNT count [ANY]] [ASC|DESC] [STORE key] [STOREDIST key]

  • radius : 最大距离
  • WITHDIST :在返回位置元素的同时, 将位置元素与中心之间的距离也一并返回。 距离的单位和用户给定的范围单位保持一致。
  • WITHCOORD : 将位置元素的经度和维度也一并返回。
  • WITHHASH : 以 52 位有符号整数的形式, 返回位置元素经过原始 geohash 编码的有序集合分值。
  • COUNT count :限定返回的最大记录数。
bash 复制代码
georadiusbymember city 广州 2000 km withcoord withdist count 2

相关推荐
这个DBA有点耶4 天前
MVCC深入:Read View、版本链与快照读——InnoDB并发控制的内核
数据库·mysql·架构
DBA_G4 天前
从地面到云霄:GBase数据库在民航三大场景的落地实践
数据库
自由能燃气设备4 天前
商用全预混低氮冷凝锅炉免费方案vs付费方案对比+选型避坑指南
大数据·数据库·人工智能
科创致远4 天前
科创致远 ESOP 系统核心效能与实战价值展示
大数据·数据库·人工智能·精益工程
IT大白鼠4 天前
Redis 系列 · 第 01 篇——认知入门:Redis 是什么
redis·nosql
彧azz4 天前
Linux 环境下 Redis 学习总结:数据类型、持久化、锁、事务、主从与缓存问题
linux·redis·笔记·学习·面试
2601_962218614 天前
万象生鲜系统称重自动多退少补算法解决生鲜非标品痛点
大数据·数据库·人工智能·python·算法
全栈弄潮儿²⁰²⁴4 天前
AI Agent 开发实战(30):限流、缓存与成本控制
人工智能·gpt·缓存·agent·限流·agi·成本控制
张洛闻Eren4 天前
k8s云原生【第十课】:水平 Pod 自动扩缩容
运维·数据库·云原生·kubernetes·github
于平安4 天前
MySQL-触发器
数据库·mysql