핵심 데이터모빌리티

지리 공간 검색

몇 초마다 갱신되는 실시간 위치로 반경이나 사각형 안에서 가장 가까운 운전자, 매장, 기기를 찾습니다.

또는 사각형 검색
반경
단위
km, mi, m, ft
위치 갱신
실시간
단계 1 / 4
운전자가 위치 보고

갱신할 때마다 운전자의 이전 위치를 대체합니다.

예시 세션playing
# 운전자가 위치 보고
hotkv> GEOADD drivers:berlin 13.4050 52.5200 driver:17 13.3889 52.5170 driver:23
(integer) 0

실제 HotKV 명령과 예시 응답으로 구성된 애니메이션 안내입니다. 원하는 단계를 클릭하면 해당 단계로 이동합니다. 명령과 응답은 HotKV에서 입력하고 보는 그대로 영어로 표시됩니다.

문제

승객을 가장 가까운 운전자와, 고객을 재고가 있는 가장 가까운 매장과 연결하려면 움직이는 수천 개 위치의 최신 상태와 밀리초 단위의 응답이 필요합니다. 공간 인덱스를 갖춘 관계형 데이터베이스는 초당 그만큼의 갱신을 감당하기 어렵습니다.

HotKV의 해결 방식

위치는 지리 공간 인덱스에 있습니다. 각 운전자는 몇 초마다 GEOADD로 자기 위치를 갱신하고, GEOSEARCH는 반경이나 사각형 안의 모든 대상을 가까운 순서로 거리와 함께 반환합니다. 같은 인덱스가 매장 찾기와 배달 구역 쿼리에도 답합니다.

단계별 설명

명령 하나하나, 무슨 일이 일어나는가

  1. 01

    운전자가 위치 보고

    갱신할 때마다 운전자의 이전 위치를 대체합니다.

    GEOADD drivers:berlin 13.4050 52.5200 driver:17 13.3889 52.5170 driver:23
  2. 02

    승객이 차량 요청

    3 km 안에서 가장 가까운 운전자 다섯 명을 가까운 순서로 찾습니다.

    GEOSEARCH drivers:berlin FROMLONLAT 13.4000 52.5190 BYRADIUS 3 km ASC COUNT 5 WITHDIST
  3. 03

    배차 제안

    두 승객이 같은 차량을 받지 않도록 운전자를 락으로 잡습니다.

    SET offer:driver:17 rider:42 NX EX 15
  4. 04

    픽업 지점까지 거리

    인덱스의 두 멤버 사이의 거리입니다.

    GEODIST drivers:berlin driver:17 driver:23 km
적용 분야

실제 시나리오

차량 호출과 택시

가까운 운전자를 밀리초 만에 찾고, 제안 락이 이중 배차를 막습니다.

배달 플랫폼

주문이 준비되는 대로 식당 근처의 배달원을 매칭합니다.

매장 찾기

고객은 지도 화면을 둘러싼 사각형 안에서 가장 가까운 매장을 봅니다.

내장 기능

제공되는 기능

실시간 위치

GEOADD는 경도와 위도로 멤버를 추가하거나 갱신합니다.

GEOADD

반경 및 사각형 검색

지점이나 멤버를 중심으로 거리순 정렬과 개수 제한을 지원합니다.

GEOSEARCHGEOSEARCHSTORE

거리와 위치

멤버 사이의 거리를 원하는 단위로 구합니다.

GEODISTGEOPOS

내부는 일반 정렬 집합

익숙한 정렬 집합 명령으로 멤버를 제거하고 셉니다.

ZREMZCARD

자주 묻는 질문

오프라인이 된 운전자는 어떻게 제거합니까?

지리 공간 인덱스는 정렬 집합이므로 ZREM으로 멤버를 제거합니다.

사각형 영역으로 검색할 수 있습니까?

예. GEOSEARCH BYBOX는 지점이나 멤버를 중심으로 너비와 높이를 받습니다.

어떤 단위를 지원합니까?

미터, 킬로미터, 피트, 마일입니다.

관련 사용 사례

직접 워크로드로 사용해 보십시오

HotKV는 Redis 프로토콜을 사용하므로 기존 클라이언트를 연결해 같은 명령을 그대로 실행할 수 있습니다.