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.
# 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
Întrebări & Exemple de Cod:
Indexare și Căutare Geospațială în Redis: GEOADD, GEODIST și GEOSEARCHAi o nelămurire despre utilizarea comenzii
Indexare și Căutare Geospațială în Redis: GEOADD, GEODIST și GEOSEARCHsau 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.