Heim > Datenbank > Redis > Hauptteil

So verwenden Sie den speziellen Redis-Datentyp Geospatial

PHPz
Freigeben: 2023-05-26 14:55:06
nach vorne
601 Leute haben es durchsucht

Redis Spezialdatentyp Geospatial Geospatial

Dies wurde in Redis Version 3.2 eingeführt. Es kann geografische Standortinformationen, die Entfernung zwischen zwei Orten, Personen im Umkreis usw. berechnen erreichen.

1. geoadd

Fügen Sie den angegebenen Geostandort (Breitengrad, Längengrad, Name) zum angegebenen Schlüssel hinzu.

Hier können Sie einige Online-Tools zur Abfrage von Breiten- und Längengraden verwenden, um Daten abzurufen.

geoadd china:city 121.472644 31.231706 shanghai
geoadd china:city 120.619585 31.299379 suzhou
geoadd china:city 116.405285 39.904989 beijing
geoadd china:city 113.280637 23.125178 guangzhou 113.26197 23.10379 haizhuqu
Nach dem Login kopieren

Fügen Sie zum Schlüssel china:city den Längen- und Breitengrad von fünf Orten hinzu: Shanghai, Suzhou, Peking, Guangzhou und Haizhu District von Guangzhou. china:city这个key里,添加了5个地方的经纬度:上海、苏州、北京、广州、广州海珠区。

So verwenden Sie den speziellen Redis-Datentyp Geospatial

二、geopos

从key里返回所有给定位置元素的位置(经度和纬度)。

geopos china:city suzhou shanghai
Nach dem Login kopieren

返回位置的坐标。

So verwenden Sie den speziellen Redis-Datentyp Geospatial

三、geodist

返回两个给定位置之间的距离。

如果两个位置之间的其中一个不存在, 那么命令返回空值。

指定单位的参数 unit 必须是以下单位的其中一个:

  • m 表示单位为米(默认)。

  • km 表示单位为千米。

  • mi 表示单位为英里。

  • ft 表示单位为英尺。

geodist china:city suzhou shanghai km
Nach dem Login kopieren

So verwenden Sie den speziellen Redis-Datentyp Geospatial

四、georadius

以给定的经纬度为中心, 返回键包含的位置元素当中, 与中心的距离不超过给定最大距离的所有位置元素。

georadius china:city 121.49295 31.22337 30 km
Nach dem Login kopieren

我以 上海黄浦区的坐标121.49295 31.22337为中心,寻找30km之内的城市。

So verwenden Sie den speziellen Redis-Datentyp Geospatial

再远点,100km之内,还可以找到suzhou,加上withdist显示出距离。

加上withcoord可以返回经纬度。

So verwenden Sie den speziellen Redis-Datentyp Geospatial

再加上count,只返回我指定的数量。

georadius china:city 121.49295 31.22337 100 km withdist withcoord count 1
Nach dem Login kopieren

So verwenden Sie den speziellen Redis-Datentyp Geospatial

五、georadiusbymember

这个命令和 georadius命令一样, 都可以找出位于指定范围内的元素。

但是这里不是指定中心点坐标,而是指定以哪个元素为中心点。

georadiusbymember china:city suzhou 100 km withdist
Nach dem Login kopieren

这里以元素suzhou

So verwenden Sie den Redis-Spezialdatentyp Geospatial

So verwenden Sie den speziellen Redis-Datentyp Geospatial 2. geopos

Gibt die Position (Längen- und Breitengrad) aller angegebenen Positionselemente aus dem Schlüssel zurück.

geohash china:city suzhou shanghai
Nach dem Login kopieren

Gibt die Koordinaten des Standorts zurück.

So verwenden Sie den Redis-Spezialdatentyp Geospatial So verwenden Sie den speziellen Redis-Datentyp Geospatial

3. geodist

Gibt die Entfernung zwischen zwei angegebenen Orten zurück.

Wenn eine der beiden Positionen nicht existiert, gibt der Befehl einen Nullwert zurück.

Die Parametereinheit der angegebenen Einheit muss eine der folgenden Einheiten sein:

  • So verwenden Sie den speziellen Redis-Datentyp Geospatialm bedeutet die Einheit ist Meter (Standard).

  • #🎜🎜#km bedeutet, dass die Einheit Kilometer sind. #🎜🎜#
  • #🎜🎜#mi bedeutet Meilen. #🎜🎜#
  • #🎜🎜#ft bedeutet Füße. #🎜🎜#
zrem china:city haizhuqu
Nach dem Login kopieren
#🎜🎜#Redis So verwenden Sie den speziellen Datentyp Geospatial#🎜🎜##🎜🎜#4. Georadius#🎜🎜##🎜🎜#Mit dem angegebenen Längen- und Breitengrad als Mittelpunkt, unter den im Return-Schlüssel enthaltenen Positionselementen, Der Abstand von der Mitte darf den für alle Positionselemente angegebenen maximalen Abstand nicht überschreiten. #🎜🎜#rrreee#🎜🎜# Ich suche Städte im Umkreis von 30 km mit den Koordinaten des Shanghai Huangpu District 121.49295 31.22337 als Zentrum. #🎜🎜##🎜🎜#So verwenden Sie den Redis-Spezialdatentyp Geospatial #🎜🎜##🎜🎜# Noch weiter entfernt, im Umkreis von 100 km, finden Sie auch suzhou sowie withdist, um die Entfernung anzuzeigen. #🎜🎜##🎜🎜#Fügen Sie withcoord hinzu, um den Breiten- und Längengrad zurückzugeben. #🎜🎜##🎜🎜#So verwenden Sie den Redis-Spezialdatentyp Geospatial #🎜🎜##🎜🎜#count hinzugefügt, nur der von mir angegebene Betrag wird zurückgegeben. #🎜🎜#rrreee#🎜🎜#So verwenden Sie den Redis-Spezialdatentyp Geospatial #🎜🎜##🎜🎜#5. georadiusbymember#🎜🎜##🎜🎜#Dieser Befehl ist derselbe wie der Georadius-Befehl und kann Elemente innerhalb des angegebenen Bereichs finden. #🎜🎜##🎜🎜#Aber hier geben wir nicht die Koordinaten des Mittelpunkts an, sondern geben an, welches Element der Mittelpunkt ist. #🎜🎜#rrreee#🎜🎜#Hier wird das Element suzhou als Mittelpunkt verwendet, um am Freitag andere Elemente im Umkreis von 100 km zu finden. #🎜🎜##🎜🎜##🎜🎜##🎜🎜##🎜🎜# 6. Geohash#🎜🎜##🎜🎜#Ein oder mehrere Positionselemente, dargestellt durch Hash. #🎜🎜#rrreee#🎜🎜##🎜🎜##🎜🎜##🎜🎜#Gibt eine 11-stellige Geohash-Zeichenfolge zurück, die den aktuellen Längen- und Breitengrad darstellt. Es handelt sich um eine geänderte Form, die den zweidimensionalen Längen- und Breitengrad umwandelt Breitengrad in eine eindimensionale Zeichenfolge. #🎜🎜##🎜🎜#Wenn die beiden Saiten in der obigen Struktur näher beieinander liegen, ist auch der Abstand zwischen den beiden Positionen geringer. Dies reicht zum Verständnis aus. #🎜🎜##🎜🎜#Das zugrunde liegende Prinzip von Geo ist immer noch zset. Wir können den Befehl zset verwenden, um Geo zu bedienen, beispielsweise um Städte aus Geo zu entfernen. #🎜🎜#rrreee#🎜🎜##🎜🎜##🎜🎜#

Das obige ist der detaillierte Inhalt vonSo verwenden Sie den speziellen Redis-Datentyp Geospatial. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:yisu.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage