English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Redis GEO viene utilizzato principalmente per memorizzare informazioni geografiche e per operare sulle informazioni memorizzate, questa funzionalità è stata aggiunta nella versione 3.2 di Redis.
Metodi di operazione GEO in Redis:
GEOADD: aggiunge le coordinate di una posizione geografica.
geopos: recupera le coordinate di una posizione geografica.
geodist: calcola la distanza tra due posizioni.
georadius: recupera una collezione di posizioni geografiche all'interno di un intervallo specificato in base a coordinate di latitudine e longitudine fornite dall'utente.
georadiusbymember: recupera una collezione di posizioni geografiche all'interno di un intervallo specificato in base a un luogo memorizzato nella collezione di posizioni.
geohash: restituisce i valori geohash di uno o più oggetti posizionali.
GEOADD serve per memorizzare posizioni geografiche specifiche, e può aggiungere un numero singolo o multiplo di latitudini (latitudine), longitudini (longitudine) e nomi di posizioni (membro) a una chiave specifica.
Formato della sintassi GEOADD:
GEOADD chiave latitudine longitudine membro [latitudine longitudine membro ...]
Nell'esempio seguente, key è Sicily, Palermo e Catania sono i nomi delle posizioni:
redis> GEOADD Sicily 13.361389 38.115556 "Palermo" 15.087269 37.502669 "Catania" (integer) 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 viene utilizzato per restituire tutte le posizioni (latitudine e longitudine) specificate da un dato key, nil per quelli non esistenti.
La sintassi di geopos è la seguente:
GEOPOS key member [member ...]
redis> GEOADD Sicily 13.361389 38.115556 "Palermo" 15.087269 37.502669 "Catania" (integer) 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 viene utilizzato per restituire la distanza tra due posizioni date.
La sintassi di geodist è la seguente:
GEODIST key member1 member2 [m|km|ft|mi]
member1 member2 sono due posizioni geografiche.
Descrizione dell'ultimo parametro di unità di distanza:
m: Metri, unità predefinita.
km: Chilometri.
mi: Miglia.
ft: Piedi.
Calcolare la distanza tra Palermo e Catania:
redis> GEOADD Sicily 13.361389 38.115556 "Palermo" 15.087269 37.502669 "Catania" (integer) 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 si basa su un dato punto di latitudine e longitudine come centro, restituisce tutti gli elementi di chiave con posizioni che non superano la distanza massima data dal centro.
georadiusbymember e GEORADIUS sono comandi simili, entrambi possono trovare gli elementi situati all'interno di un'area specificata, ma il punto centrale di georadiusbymember è determinato dall'elemento di posizione fornito, non dall'uso di latitudine e longitudine per determinare il punto centrale.
La sintassi di georadius e georadiusbymember è la seguente:
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]
Descrizione dei parametri:
m: Metri, unità predefinita.
km: Chilometri.
mi: Miglia.
ft: Piedi.
WITHDIST: Restituisce anche la distanza tra l'elemento di posizione e il centro.
WITHCOORD: Restituisce anche la latitudine e la longitudine dell'elemento di posizione.
WITHHASH: Restituisce il valore dell'insieme di posizioni, codificato con geohash, in forma di intero a 52 bit con segno. Questa opzione è principalmente utilizzata per applicazioni di basso livello o debug e non ha un grande impatto effettivo.
COUNT: Limita il numero di record restituiti.
ASC: I risultati della ricerca sono ordinati da vicino a lontano.
DESC: I risultati della ricerca sono ordinati da lontano a vicino.
georadius esempio:
redis> GEOADD Sicily 13.361389 38.115556 "Palermo" 15.087269 37.502669 "Catania" (integer) 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>
georadiusbymember example:
redis> GEOADD Sicily 13.583333 37.316667 "Agrigento" (integer) 1 redis> GEOADD Sicily 13.361389 38.115556 "Palermo" 15.087269 37.502669 "Catania" (integer) 2 redis> GEO_RADIUSBYMEMBER Sicily Agrigento 100 km 1) "Agrigento" 2) "Palermo" redis>
Redis GEO uses geohash to save geographical coordinates.
geohash is used to get the geohash value of one or more position elements.
The geohash syntax format is as follows:
GEOHASH key member [member ...]
Example:
redis> GEOADD Sicily 13.361389 38.115556 "Palermo" 15.087269 37.502669 "Catania" (integer) 2 redis> GEOHASH Sicily Palermo Catania 1) "sqc8b49rny0" 2) "sqdtr74hyu0" redis>