当前位置:网站首页>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
边栏推荐
- Persistence mechanism of redis
- In Linux, I call odspcmd to query the database information. How to output silently is to only output values. Don't do this
- Co create a collaborative ecosystem of software and hardware: the "Joint submission" of graphcore IPU and Baidu PaddlePaddle appeared in mlperf
- Google Earth Engine(GEE)——Tasks升级,实现RUN ALL可以一键下载任务类型中的所有影像
- Microservices -- Opening
- md5工具类
- The table is backed up in ODPs. Why check m in the metabase_ Table, the logical sizes of the two tables are inconsistent, but the number of
- MYSQL架构——逻辑架构
- Redis入门完整教程:列表讲解
- It is said that software testing is very simple, but why are there so many dissuasions?
猜你喜欢
新版判断PC和手机端代码,手机端跳转手机端,PC跳转PC端最新有效代码
PMO: compare the sample efficiency of 25 molecular optimization methods
Redis入门完整教程:Redis Shell
Why is Dameng data called the "first share" of domestic databases?
攻防世界 MISC 进阶区 3-11
蓝队攻防演练中的三段作战
质量体系建设之路的分分合合
MySQL Architecture - logical architecture
Advanced area a of attack and defense world misc Masters_ good_ idea
Li Kou 98: verify binary search tree
随机推荐
Redis入门完整教程:API的理解和使用
Feature scaling normalization
剑指 Offer 68 - I. 二叉搜索树的最近公共祖先
攻防世界 MISC 高手进阶区 001 normal_png
安装人大金仓数据库
The sandbox has reached a cooperation with digital Hollywood to accelerate the economic development of creators through human resource development
Practice and principle of PostgreSQL join
【烹饪记录】--- 青椒炒千张
Business is too busy. Is there really no reason to have time for automation?
Attack and defense world misc advanced grace-50
Common methods in string class
Unity vscode emmylua configuration error resolution
Tla+ introductory tutorial (1): introduction to formal methods
【剑指Offer】6-10题
POM in idea XML dependency cannot be imported
Breakpoint debugging under vs2019 c release
图片懒加载的原理
NFT Insider #64:电商巨头eBay提交NFT相关商标申请,毕马威将在Web3和元宇宙中投入3000万美元
Why is Dameng data called the "first share" of domestic databases?
10 schemes to ensure interface data security