Redis之geo

geo命令

geoadd:添加地理位置

127.0.0.1:6379> get keys
(nil)
127.0.0.1:6379> geoadd city  113.087559 28.251818 ChangSha
(integer) 1
127.0.0.1:6379> geoadd city  114.064552 22.548457 ShenZhen
(integer) 1
127.0.0.1:6379> geoadd city 104.087045 30.666416 ChengDu
(integer) 1
127.0.0.1:6379> geoadd city 106.558434 29.568996 ChongQing
(integer) 1

geopos:显示经纬度信息

127.0.0.1:6379> geopos city ChengDu
1) 1) "104.08704489469528198"
   2) "30.6664164635846177"
127.0.0.1:6379> geopos city ChongQing
1) 1) "106.55843228101730347"
   2) "29.56899626404301529"

geodist:显示距离

127.0.0.1:6379> geodist city ChengDu ChongQing km
"267.2629"
127.0.0.1:6379> geodist city ShenZhen ChongQing km 
"1082.0822"

geohash:返回一个或者多个GEOHASH 表示的元素, 返回 11 个字符 Geohash 字符串

127.0.0.1:6379> geohash city ShenZhen 
1) "ws1078g6290"

georedius:指定经纬度作为原点,指定半径,查询在指定范围内的城市,这些城市都是在我们自己的集合里面

127.0.0.1:6379> georadius city 110 30 500 km
1) "ChongQing"
2) "ChangSha"

geoRediusByMember:找出位于指定元素周围的城市

127.0.0.1:6379> georadiusbymember city ChongQing 300 km
1) "ChongQing"
2) "ChengDu"

Geospatial 底层的原理就是使用 Zset 有序集合来实现的。

geo经纬度的范围:

有效的经度从-180度到180度。
有效的纬度从-85.05112878度到85.05112878度。

Geospatial 应用场景

1.附近的人
2.计算距离
3.定位
等与位置有关的场景

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容