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

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
云数据库 Tair(兼容Redis),内存型 2GB
简介: ⑦【Redis GEO 】Redis常用数据类型:GEO [使用手册]


⑦Redis GEO 基本操作命令



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


中文乱码处理

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 —— 位置名称


geoadd city 121.48941 31.40527 "广州"



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



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

geopos key member [member ...]


geopos city 广州 # 获取空间名称“广州”的经纬度
geopos city 深圳 # 没有存储“深圳”的空间名称,返回nil



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



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

geohash key member [member ...]


# 获取key:city中位置元素“广州”的geohash值
geohash city "广州"



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



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

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

  • m —— 米
  • km —— 千米
  • ft —— 英尺
  • mi —— 英里


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 :限定返回的最大记录数。


# 键: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 :限定返回的最大记录数。


georadiusbymember city 广州 2000 km withcoord withdist count 2




相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
相关文章
|
7天前
|
存储 消息中间件 NoSQL
使用Java操作Redis数据类型的详解指南
通过使用Jedis库,可以在Java中方便地操作Redis的各种数据类型。本文详细介绍了字符串、哈希、列表、集合和有序集合的基本操作及其对应的Java实现。这些示例展示了如何使用Java与Redis进行交互,为开发高效的Redis客户端应用程序提供了基础。希望本文的指南能帮助您更好地理解和使用Redis,提升应用程序的性能和可靠性。
21 1
|
23天前
|
存储 NoSQL 定位技术
Redis geo原理
Redis的GEO功能基于Earth Mapper(http://earth-api.org/)库,它允许存储地理位置信息并执行一些基于该信息的操作。
25 3
|
23天前
|
存储 NoSQL 定位技术
Redis GEO
10月更文挑战第19天
31 1
|
27天前
|
存储 消息中间件 NoSQL
Redis 数据类型
10月更文挑战第15天
36 1
|
2月前
|
存储 消息中间件 缓存
深入探析Redis常见数据类型及应用场景
深入探析Redis常见数据类型及应用场景
51 2
|
3月前
|
NoSQL 安全 Java
Redis6入门到实战------ 三、常用五大数据类型(字符串 String)
这篇文章深入探讨了Redis中的String数据类型,包括键操作的命令、String类型的命令使用,以及String在Redis中的内部数据结构实现。
Redis6入门到实战------ 三、常用五大数据类型(字符串 String)
|
3月前
|
存储 NoSQL 算法
Redis6入门到实战------ 三、常用五大数据类型(列表(List)、集合(Set)、哈希(Hash)、Zset(sorted set))
这是关于Redis 6入门到实战的文章,具体内容涉及Redis的五大数据类型:列表(List)、集合(Set)、哈希(Hash)、有序集合(Zset(sorted set))。文章详细介绍了这些数据类型的特点、常用命令以及它们背后的数据结构。如果您有任何关于Redis的具体问题或需要进一步的帮助,请随时告诉我。
|
3月前
|
消息中间件 存储 NoSQL
redis实战——go-redis的使用与redis基础数据类型的使用场景(一)
本文档介绍了如何使用 Go 语言中的 `go-redis` 库操作 Redis 数据库
172 0
redis实战——go-redis的使用与redis基础数据类型的使用场景(一)
|
存储 NoSQL 大数据
《Redis 使用手册》:一网打尽
今天想要自来水式地推荐一本去年的新书《Redis 使用手册》。Redis 可算是现今内存数据库的实施标准,拥有丰富的数据结构和强大的功能,适用于各种不同的开发场景。对于泛化的大数据研发工程师来说,Redis 是职业生涯中绕不过去的一道坎。这本书由超过十年经验的 Redis 专家,擅长技术协作的黄健宏先生撰写,至少有以下几个特点,使得它非常适合大数据研发方向的新手。 内容详尽,循序渐进 全书一共分为三个部分总二十章。第一章仅用八页就介绍完安装 redis 和 redis-py 等准备工作,毫不拖泥带水混页数。第二章到第十章针对 Redis 开箱即用的数据结构从基础到复杂,从常用到专用一一列举
274 0
|
1月前
|
消息中间件 缓存 NoSQL
Redis 是一个高性能的键值对存储系统,常用于缓存、消息队列和会话管理等场景。
【10月更文挑战第4天】Redis 是一个高性能的键值对存储系统,常用于缓存、消息队列和会话管理等场景。随着数据增长,有时需要将 Redis 数据导出以进行分析、备份或迁移。本文详细介绍几种导出方法:1)使用 Redis 命令与重定向;2)利用 Redis 的 RDB 和 AOF 持久化功能;3)借助第三方工具如 `redis-dump`。每种方法均附有示例代码,帮助你轻松完成数据导出任务。无论数据量大小,总有一款适合你。
74 6