Hvert medlem skyves inn i et Redis -sortert sett referert av en nøkkel som lar deg spørre de geospatiale gjenstandene effektivt og på en bestilt måte på et senere tidspunkt. En av de beste bruken av denne datastrukturen er at du enkelt kan spørre avstanden mellom to geo-lokasjoner (medlemmer) ved å bruke geodistkommandoen introdusert av Redis. Dette vil være en detaljert guide til geodistkommandoen, syntaks og brukssaker.
Avstandsberegning
Redis bruker den matematiske formelen fra Haversine for å beregne avstandene for geospatiale indekser som antar at jorden er en perfekt sfære. Vi vet alle at jorden ikke er en perfekt sfære. Så, en 0.5% feil kan innføres ved avstandsberegningen. Dette kan ignoreres for applikasjoner som sosiale medier, nærliggende stedfinner og etc. Men for feilkritiske applikasjoner, bør dette brukes med omhu.
Geodistkommandoen
Geodist -kommandoen brukes til å beregne avstanden mellom to medlemmer som er lagret ved en gitt geospatial nøkkel. Denne kommandoen godtar to obligatoriske medlemsparametere og en geospatial nøkkel (indeks) som peker på et sortert sett. Avstanden returneres i meter (m). Eventuelt kan du også spesifisere enheten. Den støtter kilometer, miles og føtter også.
Syntaksen til geodistkommandoen er som følger:
Geodist geospatial_index/nøkkelmedlem_1 medlem_2 [M | Km | Ft | Mi]
Den returnerer avstanden som en dobbel verdi. Verdien avhenger av enheten du har spesifisert. Hver gang kommandoen møter ikke-eksisterende eller manglende medlemmer, returnerer den null.
Bruk sak - Få avstanden mellom to attraksjoner
La oss anta at et turistfirma introduserte en mobilapplikasjon for å finne detaljene om attraksjoner i et gitt land. Mobilapplikasjonen bruker Redis Data Store på backend for å lagre detaljene om attraksjoner inkludert deres geospatiale koordinater.
De har brukt Redis -hasjene for å lagre den grunnleggende informasjonen relatert til attraksjonene. For Geolocation -koordinatdelen bruker de Redis geospatial datastruktur.
La oss opprette en ny geospatial indeks som inneholder to medlemmer.
Geoadd attraksjoner: NewYork 23.596920 67.104923 "Lazy Mountain" 134.694013 45.394022 "Sabra River"
Nå, “Lat fjell”Og“Sabra -elven”Medlemmer skal lagres i et sortert sett som refereres til av nøkkelen Attraksjoner: NewYork.
La oss bruke geodistkommandoen for å beregne avstanden mellom de to ovennevnte medlemmene. Som standard skal den returnere avstanden i meter.
Geodistattraksjoner: Newyork "Lazy Mountain" "Sabra River"
Som du ser har vi spesifisert geospatialindeksen som Attraksjoner: NewYork. Deretter har vi de to medlemmene som strenger.
Som forventet returneres utgangen i meter. Den doble datatypen har blitt brukt til å representere avstanden.
Hente avstanden i kilometer
Det er mulig å hente ovennevnte avstand i kilometer også. Du trenger bare å bestå det valgfrie argumentet 'km' følgende:
Geodistattraksjoner: NewYork "Lazy Mountain" "Sabra River" km
Produksjon
Hente avstanden i miles
'Mi' -argumentet bør spesifiseres for å beregne avstanden mellom de gitte medlemmene i miles.
Geodistattraksjoner: NewYork "Lazy Mountain" "Sabra River" MI
Produksjon
Hent avstanden i føttene
Når du trenger å vite antall føtter fra et medlem til et annet, bare spesifiser enheten som 'ft'.
Geodistattraksjoner: NewYork "Lazy Mountain" "Sabra River" FT
Produksjon
Hver gang du spesifiserer ikke-eksisterende medlemmer, bør geodistkommandoen returnere null. La oss spesifisere to ikke-eksisterende medlemmer som følger:
Geodistattraksjoner: NewYork "Lazy" "Sabra"
Produksjon
Hvis den spesifiserte tasten ikke eksisterer, vil kommandoen returnere null.
Geodistattraksjoner: Washington "Lazy Mountain" "Sabra River" ft
I eksemplet ovenfor Attraksjoner: Washington Nøkkel er ikke tilgjengelig. Så utgangen er null som vist i følgende:
Konklusjon
Oppsummert har Redis Geospatial Data-typen blitt introdusert for å holde koordinater av geo-lokasjoner. Som nevnt lagres lengdegraden og breddegraden for et gitt medlem. Dette er representert som et sortert sett i minnet. Flere kommandoer er tilgjengelige for å operere på geospatiale datatyper. Geodisten er en av de nyttige kommandoene som fungerer på geospatiale indekser for å returnere avstanden mellom spesifiserte medlemmer. Som diskutert i introduksjonsdelen, returneres avstanden på meter som standard. Geodist -kommandoen aksepterer valgfrie argumenter for å returnere avstanden i andre enheter i tillegg til at kilometer, føtter og miles.