学习Redis五种类型之一的Zset之前,我还是觉得我务必跟你说一声,也是在我文章之中说的很多的一句话,我想也会适用于学习Redis,那就是在接触文章里的Reids命令时,不用试图去记这些命令 ,用到时去看API帮助文档即可;会用了或者实践过了再去了解也不会迟。
上手Redis系列
上手Redis系列(一):超全String字符串类型详解
上手Redis系列(二):超全List列表类型详解(代码图文示例)
上手Redis系列(三):超全集合Set类型详解(代码图文示例)
上手Redis系列(四):超全哈希Hash类型详解(代码图文示例)
上手Redis系列(五):超全有序集合Zset类型详解
在Redis中会发现一个有趣的 套路 规律,就是每种类型的命令会由类型的首字母开头。就像看下面的Geospatial,如果你耐心看下面的命令会发现都会以 的 Geo 开头。
1.geospatial详解与用途
geospatial自Redis3.2.0版本可以使用。
geospatial 地理位置,具体用途在我们生活中随处可见,例如:地图导航,附近的人,共享单车距离等等。
2.geospatial的命令
有6个命令
GEOADD |
---|
GEODIST |
GEOHASH |
GEOPOS |
GEORADIUS |
GEORADIUSBYMEMBER |
3.手敲代码
GEOADD 命令 - 添加一个地理位置
格式:GEOADD key longitude latitude member
这里添加了guangzhou(广州) 和 foshan(佛山) 的经纬度。
GEOPOS 命令 - [键值-名称] 查询经纬度。
格式:GEOPOS key member
这里查询两个名称,所以有两个经纬度。(如果输入一个名称,那么就是一个经纬度)
GEODIST 命令 - 输出两个目的地之间的距离。
格式:GEOPOS key member1 member2 m | km | ft | mi
这里输出的是广州和佛山两地之间的距离,km 单位是千米,公里。
实际广州到佛山的距离,可以看到非常接近。(因为没有精确到具体城市地点,所以会有一些误差)
GEORADIUS 命令 - 给定经纬度为中心,找半径内元素。
GEORADIUS的生活应用场景有很多,例如:你想骑共享单车,那么就可以用来找出附近单车的位置。包括更常见的打车,附近的人等等。
格式:GEORADIUS key longitude latitude radius m | km | ft | mi
我们再添加上海和西藏的经纬度。
小半径范围。
我们定一个位置,扩大半径范围,找出了所有城市。
GEORADIUS 后加上 WITHCOORD 还可以显示具体经度纬度 COUNT 可以限制显示数量。
格式:WITHCOORD COUNT count
GEORADIUSBYMEMBER 命令 - 找出指定范围元素
格式:GEORADIUSBYMEMBER key member radius m | km | ft | mi
跟GEORADIUS 有点相似,但是不同的是,GEORADIUSBYMEMBER 是选择已有的成员。
GEOHASH 命令 - 返回一个或多个位置元素的 Geohash 表示
其实就是返回11个Geohash字符串
那怎么查看所有地理位置和删除呢?
可以看上一篇Zset,因为Geospatial本质上是Zset(底层是Zset),所以可以用Zset的命令。
查询所有地理位置
格式:ZRANGE key start stop
删除某一个地理位置
格式:ZREM key member
最后
最后的最后,为了更好的阅读体验,我把想说的话都放在了下面,嘿嘿。
我是一颗剽悍的种子 把我会的,认真的分享 是我写博客一直不变的信条。
如果你能看到这篇博文,说明咱们还是很有缘的;希望能带给你一些许帮助,创作的不易,
把我文章的知识带走,你的三连留下,点赞,评论,关注,是我最大的动力。
来源:oschina
链接:https://my.oschina.net/u/4275665/blog/4553874