Redis geospatial
三种特殊数据类型
geospatial地理位置
规则:两极数据无法直接添加。
利用geo这个功能可以推算地理位置的信息,两地之间的距离,方圆几里的人!
geospatial命令以“geo”开头
1.利用geoadd key longitude latitude member 命令添加位置
127.0.0.1:6379> geoadd china:city 116.40 39.90 beijing
(integer) 1
127.0.0.1:6379> geoadd china:city 121.47 31.23 shanghai
(integer) 1
127.0.0.1:6379> geoadd china:city 106.50 29.53 chongqing
(integer) 1
127.0.0.1:6379>
2.利用geopos 命令获取指定的城市的经纬度
127.0.0.1:6379> geopos china:city beijing
1) 1) "116.39999896287918"
2) "39.900000091670925"
127.0.0.1:6379>
3.利用geodist命令获取两个给定位置之间的距离
指定的单位有:m、km、mi、ft
127.0.0.1:6379> geodist china:city beijing shanghai km
"1067.3788"
127.0.0.1:6379>
4.利用georadius命令以给定的 经纬度为中心,找出一半径内的元素
127.0.0.1:6379> georadius china:city 110 30 1000 km
1) "chongqing"
127.0.0.1:6379>
显示经纬度
127.0.0.1:6379> georadius china:city 110 30 1000 km withcoord
1) 1) "chongqing"
2) 1) "106.49999767541885"
2) "29.529999579006592"
127.0.0.1:6379>
5.利用georadiusbymemer命令找出位于指定范围内的元素,中心点是由给定的位置元素决定。
127.0.0.1:6379> georadiusbymember china:city beijing 1000 km
1) "beijing"
6.利用geohash 命令返回一个或多个位置元素的geohash元素
该命令返回11个字符的geohash字符串!将二维的经纬度转换为一维的字符串,如果两个字符串越接近,那么距离越接近!
127.0.0.1:6379> geohash china:city beijing chongqing
1) "wx4fbxxfke0"
2) "wm5xzrybty0"
127.0.0.1:6379>
7.geo底层实现原理其实就是zset,可以使用zset命令来操作geo
①比如查看地图中全部的元素
127.0.0.1:6379> zrange china:city 0 -1 1) "chongqing" 2) "shanghai" 3) "beijing" 127.0.0.1:6379>
②比如移除一个(指定)地理元素
127.0.0.1:6379> zrem china:city beijing
(integer) 1
127.0.0.1:6379> zrange china:city 0 -1
1) "chongqing"
2) "shanghai"
127.0.0.1:6379>
应用场景:
朋友定位
附近的人
打车距离计算
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!