Im vorherigen Artikel „Redis Special Data Type Stream“ habe ich Ihnen die relevanten Inhalte zum Datentyp Stream vorgestellt alle.
Empfohlenes Lernen: Redis-Video-Tutorial
Der GEO-Typ verwendet die GeoHash-Kodierungsmethode, um Längen- und Breitengrad in Elementgewichtungswerte im sortierten Satz umzuwandeln. Die beiden Schlüsselmechanismen sind „Intervallteilung der zweidimensionalen Karte“ und „Intervallkodierung“. Nachdem ein Satz von Längen- und Breitengraden in ein bestimmtes Intervall fällt, wird er durch den Codierungswert des Intervalls dargestellt und der Codierungswert wird als Gewichtsbewertung des Sorted Set-Elements verwendet.
Auf diese Weise können wir den Längen- und Breitengrad im sortierten Satz speichern und die vom sortierten Satz bereitgestellte Funktion „Suche nach geordnetem Bereich nach Gewicht“ verwenden, um die in LBS-Diensten häufig verwendete Anforderung „Suche in der Nähe“ zu erfüllen.
Allgemeine Befehle# 存储指定的地理空间位置,可以将一个或多个经度(longitude)、纬度(latitude)、位置名称(member)添加到指定的 key 中。 GEOADD key longitude latitude member [longitude latitude member ...] # 从给定的 key 里返回所有指定名称(member)的位置(经度和纬度),不存在的返回 nil。 GEOPOS key member [member ...] # 返回两个给定位置之间的距离。 GEODIST key member1 member2 [m|km|ft|mi] # 根据用户给定的经纬度坐标来获取指定范围内的地理位置集合。 GEORADIUS key longitude latitude radius m|km|ft|mi [WITHCOORD] [WITHDIST] [WITHHASH] [COUNT count] [ASC|DESC] [STORE key] [STOREDIST key]
Anwendungsszenarien
Didi-Hailing
Führen Sie den folgenden Befehl aus, um den aktuellen Breiten- und Längengrad des Fahrzeugs mit der ID-Nummer 33 in der GEO-Sammlung zu speichern: GEOADD cars:locations 116.034579 39.030452 33
Wenn der Benutzer einen Online-Ride-Hailing-Dienst in seiner Nähe finden möchte, kann die LBS-Anwendung diese verwenden der GEORADIUS-Befehl. Wenn die LBS-Anwendung beispielsweise den folgenden Befehl ausführt, sucht Redis basierend auf den Breiten- und Längengradinformationen des eingegebenen Benutzers (116.054579, 39.030452) nach Fahrzeuginformationen innerhalb von 5 Kilometern, zentriert auf diesem Längen- und Breitengrad, und gibt sie an das LBS zurück Anwendung.
GEORADIUS cars:locations 116.054579 39.030452 5 km ASC COUNT 10
Empfohlenes Lernen:
Redis-Video-TutorialDas obige ist der detaillierte Inhalt vonRedis spezieller Datentyp Geospatial. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!