English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Redis GEO

Redis GEO는 주로 위치 정보를 저장하고 이를 처리하는 데 사용되며, 이 기능은 Redis에서 제공됩니다. 32 버전 추가.

Redis GEO 작업 방법은 다음과 같습니다:

  • geoadd: 위치의 좌표를 추가합니다.

  • geopos: 위치의 좌표를 가져옵니다.

  • geodist: 두 위치 간의 거리를 계산합니다.

  • georadius: 사용자가 제공한 위도와 경도 좌표를 기준으로 지정된 범위 내의 위치 집합을 가져옵니다.

  • georadiusbymember: 위치 집합에 저장된 특정 위치를 기준으로 지정된 범위 내의 위치 집합을 가져옵니다.

  • geohash: 여러 위치 객체의 geohash 값을 반환합니다.

geoadd

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

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 문법 형식은 다음과 같습니다:

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와 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>

    geohash

    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>