Indexare și Căutare Geospațială în Redis: GEOADD, GEODIST și GEOSEARCH în Redis & In-Memory Data Store

Ghid complet pentru capabilitățile geospațiale din Redis: stocarea coordonatelor GPS cu GEOADD, calculul distanțelor geodezice cu GEODIST și interogarea perimetrelor circulare sau dreptunghiulare cu GEOSEARCH.

Sintaxă comandă
GEOADD key long lat membru | GEODIST key m1 m2 [m|km] | GEOSEARCH key FROMLONLAT ... BYRADIUS ...

Capabilitățile geospațiale din Redis permit construirea rapidă a unor aplicații moderne bazate pe locație (ride-sharing precum Uber/Bolt, livrare mâncare, căutare magazine fizice apropiate). Redis codifică perechile de coordonate (longitudine, latitudine) într-un număr întreg de 52 de biți folosind algoritmul Geohash și le stochează eficient într-un Sorted Set (ZSET) standard.

Începând cu Redis 6.2, vechile comenzi GEORADIUS și GEORADIUSBYMEMBER au fost înlocuite de comanda unificată și flexibilă GEOSEARCH.

Adăugarea Punctelor Geografice și Căutarea în Rază (GEOSEARCH)
# Notă: Ordinea parametrilor este STRICT: LONGITUDINE urmată de LATITUDINE!

# 1. Înregistrăm coordonatele unor locații cheie din București:
GEOADD locatii:bucuresti 26.1025 44.4323 "Universitate"
GEOADD locatii:bucuresti 26.0844 44.4398 "Piata Romana"
GEOADD locatii:bucuresti 26.0872 44.4678 "Piata Arcul de Triumf"
GEOADD locatii:bucuresti 26.1264 44.4355 "Piata Muncii"

# 2. Calculăm distanța precisă pe suprafața globului (formula Haversine) între două puncte:
GEODIST locatii:bucuresti "Universitate" "Piata Arcul de Triumf" km
# Răspuns: "4.1378" (kilometri)

# 3. Căutăm toate locațiile aflate pe o rază de maxim 2.5 km în jurul Pieței Romane:
GEOSEARCH locatii:bucuresti 
    FROMMEMBER "Piata Romana" 
    BYRADIUS 2.5 km 
    WITHDIST 
    WITHCOORD 
    ASC
# Răspuns:
# 1) 1) "Piata Romana"
#    2) "0.0000"
#    3) 1) "26.084400" 2) "44.439800"
# 2) 1) "Universitate"
#    2) "1.6641"
#    3) 1) "26.102500" 2) "44.432300"

Salvarea Rezultatelor Căutării cu GEOSEARCHSTORE

Dacă doriți să persistați lista rezultatelor geospațiale direct într-un alt Sorted Set pentru a fi consumat ulterior sau paginat, folosiți GEOSEARCHSTORE:

GEOSEARCHSTORE soferi_apropiati locatii:soferi 
    FROMLONLAT 26.1025 44.4323 
    BYRADIUS 3 km 
    COUNT 10
Comunitate & Schimb de cunoștințe

Întrebări & Exemple de Cod: Indexare și Căutare Geospațială în Redis: GEOADD, GEODIST și GEOSEARCH

Ai o nelămurire despre utilizarea comenzii Indexare și Căutare Geospațială în Redis: GEOADD, GEODIST și GEOSEARCH sau ai descoperit un truc / fragment de cod util? Distribuie-l cu ceilalți programatori!

💬

Fii primul care pune o întrebare sau distribuie un fragment de cod / prompt!

Nu au fost adăugate încă întrebări sau exemple de cod pentru această pagină. Dacă ai întâlnit o problemă sau ai un snippet util, adaugă-l mai jos pentru a-i ajuta pe ceilalți.

Comunitate Adaugă o întrebare sau distribuie un cod

Moderare & Siguranță:

Pentru a menține calitatea și securitatea informațiilor, fiecare întrebare sau fragment de cod/prompt este analizat (manual sau prin moderare asistată de AI) înainte de publicare.