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

本文涉及的产品
云数据库 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
目录
相关文章
|
1月前
|
存储 消息中间件 NoSQL
Redis数据类型详解:选择合适的数据结构优化你的应用
Redis数据类型详解:选择合适的数据结构优化你的应用
|
4天前
|
SQL NoSQL Java
Redis数据类型 Hash Set Zset Bitmap HyperLogLog GEO
Redis数据类型 Hash Set Zset Bitmap HyperLogLog GEO
14 0
|
8天前
|
存储 NoSQL 定位技术
Redis常用数据类型及常用命令
这些是Redis中常用的数据类型和命令。Redis还提供了许多其他命令和功能,用于数据存储、操作和查询。你可以根据需要选择适当的数据类型和命令来满足你的应用程序需求。
21 4
|
17天前
|
存储 NoSQL API
Redis入门到通关之GEO实现附近的人功能
Redis入门到通关之GEO实现附近的人功能
11 0
|
17天前
|
存储 SQL NoSQL
Redis入门到通关之五大基本数据类型及其使用场景
Redis入门到通关之五大基本数据类型及其使用场景
17 0
|
18天前
|
存储 NoSQL Redis
第十八章 Redis查看配置文件和数据类型
第十八章 Redis查看配置文件和数据类型
20 0
|
1月前
|
存储 SQL NoSQL
Redis的数据类型
Redis的数据类型
19 0
|
1月前
|
存储 NoSQL 定位技术
Redis Geo:解锁地理位置数据的新可能性
Redis Geo:解锁地理位置数据的新可能性
|
2月前
|
存储 NoSQL Java
【Redis】1、学习 Redis 的五大基本数据类型【String、Hash、List、Set、SortedSet】
【Redis】1、学习 Redis 的五大基本数据类型【String、Hash、List、Set、SortedSet】
57 0
|
存储 NoSQL 安全
Redis(四)-Redis的常用数据类型之String字符串
String是Redis的一个最基本的数据类型,一个key对一个一个value。 String 类型是二进制安全的,意味着Redis的String可以包含任何数据,比如jpg图片或者序列化的对象 String类型是Redis最基本的数据类型,一个Redis中字符串value最多可以是512MB。
70 0
Redis(四)-Redis的常用数据类型之String字符串