English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Redis GEO는 주로 위치 정보를 저장하고 이를 처리하는 데 사용되며, 이 기능은 Redis에서 제공됩니다. 32 버전 추가.
Redis GEO 작업 방법은 다음과 같습니다:
geoadd: 위치의 좌표를 추가합니다.
geopos: 위치의 좌표를 가져옵니다.
geodist: 두 위치 간의 거리를 계산합니다.
georadius: 사용자가 제공한 위도와 경도 좌표를 기준으로 지정된 범위 내의 위치 집합을 가져옵니다.
georadiusbymember: 위치 집합에 저장된 특정 위치를 기준으로 지정된 범위 내의 위치 집합을 가져옵니다.
geohash: 여러 위치 객체의 geohash 값을 반환합니다.
geoadd는 지정된 지리적 공간 위치를 저장하며, 하나 이상의 경도(longitude), 위도(latitude), 위치 이름(member)를 지정된 key에 추가할 수 있습니다.
geoadd 문법 형식은 다음과 같습니다:
GEOADD key longitude latitude member [longitude latitude member ...]
다음 예제에서 key는 Sicily, Palermo, Catania입니다 :
redis> GEOADD Sicily 13361389 38115556 "Palermo" 15.087269 37502669 "Catania" (integer) 2 redis> GEODIST Sicily Palermo Catania "1662741516" redis> GEORADIUS Sicily 15 37 100 km 1) "Catania" redis> GEORADIUS Sicily 15 37 200 km 1) "Palermo" 2) "Catania" redis>
geopos는 지정된 key에서 모든 지정된 이름(member)의 위치(경도와 위도)를 반환하며, 존재하지 않는 경우 nil을 반환합니다.
geopos 문법 형식은 다음과 같습니다:
GEOPOS key member [member ...]
redis> GEOADD Sicily 13361389 38115556 "Palermo" 15.087269 37502669 "Catania" (integer) 2 redis> GEOPOS Sicily Palermo Catania NonExisting 1) 1) "1336138933897018433" 2) "3811555639549629859" 2) 1) "15.08726745843887329" 2) "3750266842333162032" 3) (nil) redis>
geodist 사용하여 두 위치 간의 거리를 반환합니다.
geodist 문법 형식은 다음과 같습니다:
GEODIST key member1 member2 [m|km|ft|mi]
member1 member2 두 지리적 위치를 위해.
마지막 거리 단위 파라미터 설명:
m: 미터, 기본 단위.
km: 킬로미터.
mi: 마일.
ft: 피트.
Palermo와 Catania 사이의 거리를 계산합니다:
redis> GEOADD Sicily 13361389 38115556 "Palermo" 15.087269 37502669 "Catania" (integer) 2 redis> GEODIST Sicily Palermo Catania "1662741516" redis> GEODIST Sicily Palermo Catania km "1662742" redis> GEODIST Sicily Palermo Catania mi "1033182" redis> GEODIST Sicily Foo Bar (nil) redis>
georadius는 주어진 경도와 위도를 중심으로, 중심에 최대 거리 내에 있는 모든 위치 요소를 포함하는 키에 대한 위치 요소를 반환합니다.
georadiusbymember와 GEORADIUS 명령어는 모두 지정된 범위 내에 있는 요소를 찾을 수 있지만, georadiusbymember의 중심점은 주어진 위치 요소에 의해 결정되며, 경도와 위도를 사용하여 중심점을 결정하지 않습니다.
georadius와 georadiusbymember 문법 형식은 다음과 같습니다:
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]
파라미터 설명:
m: 미터, 기본 단위.
km: 킬로미터.
mi: 마일.
ft: 피트.
WITHDIST: 위치 요소를 반환하는 동시에, 위치 요소와 중심 사이의 거리도 함께 반환합니다.
WITHCOORD: 위치 요소의 경도와 위도도 함께 반환합니다.
WITHHASH: 52 부호가 있는 정수 형식으로, 원래 geohash 인코딩된 순서 집합 값이 위치 요소를 반환합니다. 이 옵션은 주로 밑층 애플리케이션이나 디버깅에 사용되며, 실제 작용은 크지 않습니다.
COUNT은 반환할 레코드 수를 제한합니다.
ASC: 결과는 가까이부터 멀리로 정렬됩니다.
DESC: 결과는 멀리부터 가까이로 정렬됩니다.
georadius 예제:
redis> GEOADD Sicily 13361389 38115556 "Palermo" 15.087269 37502669 "Catania" (integer) 2 redis> GEORADIUS Sicily 15 37 200 km WITHDIST 1) 1) "Palermo" 2) "190.4424" 2) 1) "Catania" 2) "564413" redis> GEORADIUS Sicily 15 37 200 km WITHCOORD 1) 1) "Palermo" 2) 1) "1336138933897018433" 2) "3811555639549629859" 2) 1) "Catania" 2) 1) "15.08726745843887329" 2) "3750266842333162032" redis> GEORADIUS Sicily 15 37 200 km WITHDIST WITHCOORD 1) 1) "Palermo" 2) "190.4424" 3) 1) "1336138933897018433" 2) "3811555639549629859" 2) 1) "Catania" 2) "564413" 3) 1) "15.08726745843887329" 2) "3750266842333162032" redis>
georadiusbymember 예제:
redis> GEOADD Sicily 13583333 37316667 "Agrigento" (integer) 1 redis> GEOADD Sicily 13361389 38115556 "Palermo" 15.087269 37502669 "Catania" (integer) 2 redis> GEORADIUSBYMEMBER Sicily Agrigento 100 km 1) "Agrigento" 2) "Palermo" redis>
Redis GEO는 geohash를 사용하여 위치 좌표를 저장합니다.
geohash는 하나나 여러 개의 위치 요소의 geohash 값을 가져오기 위해 사용됩니다.
geohash 문법 형식은 다음과 같습니다:
GEOHASH key member [member ...]
예제:
redis> GEOADD Sicily 13361389 38115556 "Palermo" 15.087269 37502669 "Catania" (integer) 2 redis> GEOHASH Sicily Palermo Catania 1) "sqc8b49rny0" 2) "sqdtr74hyu0" redis>