Redis GEO
Redis GEO est principalement utilisé pour stocker des informations de localisation géographique et effectuer des opérations sur les informations stockées. Cette fonctionnalité a été ajoutée dans Redis version 3.2.
Les méthodes d'opération de Redis GEO incluent :
- geoadd : Ajouter les coordonnées d'un emplacement géographique.
- geopos : Obtenir les coordonnées d'un emplacement géographique.
- geodist : Calculer la distance entre deux emplacements.
- georadius : Obtenir l'ensemble des emplacements géographiques dans une plage spécifiée en fonction des coordonnées de longitude et de latitude fournies par l'utilisateur.
- georadiusbymember : Obtenir l'ensemble des emplacements géographiques dans une plage spécifiée en fonction d'un emplacement stocké dans l'ensemble d'emplacements.
- geohash : Renvoie la valeur geohash d'un ou plusieurs objets de localisation.
geoadd
geoadd est utilisé pour stocker des positions géospatiales spécifiées. Il peut ajouter une ou plusieurs longitudes, latitudes et noms de lieu (membres) à la clé spécifiée.
Le format de syntaxe de geoadd est le suivant :
GEOADD key longitude latitude member [longitude latitude member ...]
Dans l'exemple suivant, la clé est Sicily, et Palermo et Catania sont des noms de lieu :
Exemple
(entier) 2
redis> GEODIST Sicily Palermo Catania
"166274.1516"
redis> GEORADIUS Sicily 15 37 100 km
1) "Catania"
redis> GEORADIUS Sicily 15 37 200 km
1) "Palermo"
2) "Catania"
redis>
geopos
geopos est utilisé pour renvoyer les positions (longitude et latitude) de tous les noms spécifiés (membres) à partir de la clé donnée. Ceux qui n'existent pas renvoient nil.
Le format de syntaxe de geopos est le suivant :
GEOPOS key member [member ...]
Exemple
(entier) 2
redis> GEOPOS Sicily Palermo Catania NonExisting
1) 1) "13.36138933897018433"
2) "38.11555639549629859"
2) 1) "15.08726745843887329"
2) "37.50266842333162032"
3) (nil)
redis>
geodist
geodist est utilisé pour renvoyer la distance entre deux emplacements donnés.
Le format de syntaxe de geodist est le suivant :
GEODIST key member1 member2 [m|km|ft|mi]
member1 et member2 sont les deux emplacements géographiques.
Explication du dernier paramètre d'unité de distance :
- m : mètres, unité par défaut.
- km : kilomètres.
- mi : miles.
- ft : pieds. Calculez la distance entre Palerme et Catane :
Exemple
(entier) 2
redis> GEODIST Sicily Palermo Catania
"166274.1516"
redis> GEODIST Sicily Palermo Catania km
"166.2742"
redis> GEODIST Sicily Palermo Catania mi
"103.3182"
redis> GEODIST Sicily Foo Bar
(nil)
redis>
georadius、georadiusbymember
georadius prend la longitude et la latitude données comme centre et renvoie tous les éléments de localisation dans la clé dont la distance au centre ne dépasse pas la distance maximale donnée.
georadiusbymember est identique à la commande GEORADIUS ; les deux peuvent trouver des éléments situés dans une plage spécifiée. Cependant, le point central de georadiusbymember est déterminé par l'élément de localisation donné, plutôt que d'utiliser la longitude et la latitude pour déterminer le point central.
Les formats de syntaxe de georadius et georadiusbymember sont les suivants :
GEORADIUS key longitude latitude radius m|km|ft|mi [WITHCOORD] [WITHDIST] [WITHHASH] [COUNT count] [ASC|DESC] [STORE key] [STOREDIST key] GEORADIUSBYMEMBER key member radius m|km|ft|mi [WITHCOORD] [WITHDIST] [WITHHASH] [COUNT count] [ASC|DESC] [STORE key] [STOREDIST key]
Description du paramètre :
- m : mètres, unité par défaut.
- km : kilomètres.
- mi : miles.
- ft : pieds.
- WITHDIST : lors du renvoi des éléments de localisation, renvoie également la distance entre l'élément de localisation et le centre.
- WITHCOORD : renvoie également la longitude et la latitude de l'élément de localisation.
- WITHHASH : renvoie le score d'ensemble trié de l'élément de localisation après l'encodage geohash d'origine, sous la forme d'un entier signé de 52 bits. Cette option est principalement utilisée pour les applications de bas niveau ou le débogage, et son utilité pratique est limitée.
- COUNT limite le nombre d'enregistrements renvoyés.
- ASC : trie les résultats de recherche du plus proche au plus éloigné selon la distance.
- DESC : Trier les résultats de recherche du plus loin au plus proche.
exemple de georadius :
Exemple
(entier) 2
redis> GEORADIUS Sicily 15 37 200 km WITHDIST
1) 1) "Palermo"
2) "190.4424"
2) 1) "Catania"
2) "56.4413"
redis> GEORADIUS Sicily 15 37 200 km WITHCOORD
1) 1) "Palermo"
2) 1) "13.36138933897018433"
2) "38.11555639549629859"
2) 1) "Catania"
2) 1) "15.08726745843887329"
2) "37.50266842333162032"
redis> GEORADIUS Sicily 15 37 200 km WITHDIST WITHCOORD
1) 1) "Palermo"
2) "190.4424"
3) 1) "13.36138933897018433"
2) "38.11555639549629859"
2) 1) "Catania"
2) "56.4413"
3) 1) "15.08726745843887329"
2) "37.50266842333162032"
redis>
exemple de georadiusbymember :
Exemple
(entier) 1
redis> GEOADD Sicily 13.361389 38.115556 "Palermo" 15.087269 37.502669 "Catania"
(entier) 2
redis> GEORADIUSBYMEMBER Sicily Agrigento 100 km
1) "Agrigento"
2) "Palermo"
redis>
geohash
Redis GEO utilise geohash pour stocker les coordonnées des emplacements géographiques.
geohash est utilisé pour obtenir la valeur geohash d'un ou plusieurs éléments de localisation.
Le format de syntaxe du geohash est le suivant :
GEOHASH key member [member ...]
Exemple :
Exemple
(entier) 2
redis> GEOHASH Sicily Palermo Catania
1) "sqc8b49rny0"
2) "sqdtr74hyu0"
redis>