当前位置:网站首页>Redis getting started complete tutorial: Geo
Redis getting started complete tutorial: Geo
2022-07-04 22:53:00 【Gu Ge academic】
Redis3.2 Version provides GEO( Location of geographic information ) function , Support the storage of geographic location information
Information is used to realize such as nearby location 、 Shake this kind of function that depends on Geographic Information , For need
It's good news for developers who want to realize these functions .GEO The function is Redis Another author of
Matt Stancliff [1] reference NoSQL database Ardb [2] Realized ,Ardb The author is from China , it
Provides excellent GEO function .
1. Add location information
geoadd key longitude latitude member [longitude latitude member ...]
longitude、latitude、member They are the longitude of the geographical location 、 latitude 、 member , surface
3-7 Exhibition 5 The longitude and latitude of a city .
cities:locations It's the top 5 A collection of urban geographic information , Now add Beijing
Geographic location information :
127.0.0.1:6379> geoadd cities:locations 116.28 39.55 beijing
(integer) 1
The returned result represents the number of successful additions , If cities:locations Not included beijing,
So the return result is 1, If it already exists, return 0:
127.0.0.1:6379> geoadd cities:locations 116.28 39.55 beijing
(integer) 0
If you need to update the geographic location information , Still usable geoadd command , Although the result is returned
by 0.geoadd Command can add multiple geographic location information at the same time :
127.0.0.1:6379> geoadd cities:locations 117.12 39.08 tianjin 114.29 38.02
shijiazhuang 118.01 39.38 tangshan 115.29 38.51 baoding
(integer) 4
2. Get geographic location information
geopos key member [member ...]
The following operation will obtain the economic dimension of Tianjin :
127.0.0.1:6379> geopos cities:locations tianjin
1) 1) "117.12000042200088501"
2) "39.0800000535766543"
3. Gets the distance between two geographical locations .
geodist key member1 member2 [unit]
among unit Represents the unit of the returned result , It includes the following four :
·m(meters) It's for rice .
·km(kilometers) Representative kilometer .
·mi(miles) For miles .
·ft(feet) For ruler .
The following operations are used to calculate the distance between Tianjin and Beijing , And in kilometers :
127.0.0.1:6379> geodist cities:locations tianjin beijing km
"89.2061"
4. Gets the collection of geographic information locations within the specified location range
georadius key longitude latitude radiusm|km|ft|mi [withcoord] [withdist]
[withhash] [COUNT count] [asc|desc] [store key] [storedist key]
georadiusbymember key member radiusm|km|ft|mi [withcoord] [withdist]
[withhash] [COUNT count] [asc|desc] [store key] [storedist key]
georadius and georadiusbymember The effect of the two commands is the same , All in one place
Calculate other geographic information locations within the specified radius by taking the location as the center , The difference is georadius command
The center position of gives the specific longitude and latitude ,georadiusbymember Just give the members . Its
in radiusm|km|ft|mi Is the required parameter , The radius is specified ( With units ), These two commands have many
Optional parameters , As shown below :
·withcoord: The return result contains latitude and longitude .
·withdist: The return result contains the distance from the center node position .
·withhash: The return result contains geohash, of geohash Later on .
·COUNT count: Specify the number of returned results .
·asc|desc: The returned results are in ascending or descending order according to the distance from the central node .
·store key: Save the geographic location information of the returned result to the specified key .
·storedist key: Save the distance between the returned result and the central node to the specified key .
The following operation calculates... In five cities , Distance from Beijing 150 Cities within kilometers :
127.0.0.1:6379> georadiusbymember cities:locations beijing 150 km
1) "beijing"
2) "tianjin"
3) "tangshan"
4) "baoding"
5. obtain geohash
geohash key member [member ...]
Redis Use geohash [3] Convert two-dimensional latitude and longitude to one-dimensional string , The following operation will return
beijing Of geohash value .
127.0.0.1:6379> geohash cities:locations beijing
1) "wx4ww02w070"
geohash It has the following characteristics :
·GEO The data type of is zset,Redis All geographic information will be geohash Store in zset
in .
127.0.0.1:6379> type cities:locations
zset
· The longer the string , Indicates a more precise position , surface 3-8 The corresponding precision of string length is given
degree , for example geohash The length is 9 when , Precision in 2 Rice or so .
surface 3-8 geohash The correspondence between length and accuracy
· The more similar the two strings are , The closer they are ,Redis Match with string prefix
Algorithm implementation related commands .
·geohash Coding and latitude and longitude can be converted to each other .
Redis It is using ordered sets and combining geohash The features of GEO A number of orders .
6. Delete geographic information
zrem key member
GEO There is no command to delete members , But because GEO The underlying implementation of zset, therefore
You can borrow zrem Command to delete geographic location information .
[1] https://matt.sh/
[2] https://github.com/yinqiwen/ardb
[3] https://en.wikipedia.org/wiki/Geohash
边栏推荐
- [machine learning] handwritten digit recognition
- Redis入门完整教程:键管理
- 页面关闭前,如何发送一个可靠请求
- 醒悟的日子,我是怎么一步一步走向软件测试的道路
- 业务太忙,真的是没时间搞自动化理由吗?
- The overview and definition of clusters can be seen at a glance
- Duplicate ADMAS part name
- Redis入门完整教程:发布订阅
- Google Earth engine (GEE) - tasks upgrade enables run all to download all images in task types with one click
- Attack and defense world misc advanced area can_ has_ stdio?
猜你喜欢
LOGO特訓營 第三節 首字母創意手法
PMO: compare the sample efficiency of 25 molecular optimization methods
Attack and defense world misc advanced area can_ has_ stdio?
Logo Camp d'entraînement section 3 techniques créatives initiales
Analysis of the self increasing and self decreasing of C language function parameters
LOGO特训营 第二节 文字与图形的搭配关系
安装人大金仓数据库
MySQL Architecture - logical architecture
Logo special training camp Section V font structure and common design techniques
It is said that software testing is very simple, but why are there so many dissuasions?
随机推荐
Advanced area a of attack and defense world misc Masters_ good_ idea
Breakpoint debugging under vs2019 c release
NFT Insider #64:电商巨头eBay提交NFT相关商标申请,毕马威将在Web3和元宇宙中投入3000万美元
Install the gold warehouse database of NPC
繁華落盡、物是人非:個人站長該何去何從
Redis的持久化机制
The sandbox has reached a cooperation with digital Hollywood to accelerate the economic development of creators through human resource development
剑指 Offer 68 - I. 二叉搜索树的最近公共祖先
Redis入门完整教程:键管理
Redis入门完整教程:事务与Lua
Practice and principle of PostgreSQL join
Advanced area of attack and defense world misc 3-11
蓝队攻防演练中的三段作战
The Sandbox 和数字好莱坞达成合作,通过人力资源开发加速创作者经济的发展
Taobao commodity review API interface (item_review get Taobao commodity review API interface), tmall commodity review API interface
Redis入门完整教程:Redis Shell
SPSS installation and activation tutorial (including network disk link)
Redis入门完整教程:HyperLogLog
String类中的常用方法
Unity Xiuxian mobile game | Lua dynamic sliding function (specific implementation of three source codes)