Dữ liệu lõiDi chuyển

Tìm kiếm địa lý

Tìm tài xế, cửa hàng hoặc thiết bị gần nhất trong một bán kính hoặc một hình hộp, với vị trí trực tiếp được cập nhật vài giây một lần.

hoặc tìm theo hình hộp
Bán kính
đơn vị
km, mi, m, ft
cập nhật vị trí
Trực tiếp
Bước 1 trên 4
Tài xế báo vị trí

Mỗi lần cập nhật thay thế vị trí trước đó của tài xế.

Phiên ví dụplaying
# Tài xế báo vị trí
hotkv> GEOADD drivers:berlin 13.4050 52.5200 driver:17 13.3889 52.5170 driver:23
(integer) 0

Một hướng dẫn minh họa động với các lệnh HotKV thật và phản hồi ví dụ. Nhấn vào bất kỳ bước nào để nhảy tới đó. Lệnh và phản hồi giữ nguyên bằng tiếng Anh, đúng như bạn gõ và thấy trong HotKV.

Vấn đề

Ghép một hành khách với tài xế gần nhất, hoặc một khách hàng với cửa hàng gần nhất còn hàng, cần một cái nhìn mới về hàng nghìn vị trí đang di chuyển và câu trả lời trong vài mili giây. Một cơ sở dữ liệu quan hệ với chỉ mục không gian chật vật với số lượng cập nhật mỗi giây lớn như vậy.

HotKV xử lý như thế nào

Vị trí nằm trong một chỉ mục địa lý. Mỗi tài xế cập nhật vị trí của mình vài giây một lần bằng GEOADD, và GEOSEARCH trả về tất cả những ai trong một bán kính hoặc một hình hộp, gần nhất trước, kèm khoảng cách của họ. Cùng chỉ mục đó trả lời các truy vấn tìm cửa hàng và vùng giao hàng.

Từng bước một

Điều gì xảy ra, từng lệnh một

  1. 01

    Tài xế báo vị trí

    Mỗi lần cập nhật thay thế vị trí trước đó của tài xế.

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

    Một hành khách gọi xe

    Tìm năm tài xế gần nhất trong vòng 3 km, gần nhất trước.

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

    Đề nghị chuyến đi

    Khóa tài xế để hai hành khách không thể nhận cùng một xe.

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

    Khoảng cách tới điểm đón

    Khoảng cách giữa hai thành viên của chỉ mục.

    GEODIST drivers:berlin driver:17 driver:23 km
Phù hợp ở đâu

Các tình huống thực tế

Gọi xe và taxi

Tài xế ở gần được tìm trong vài mili giây, và một khóa đề nghị ngăn đặt trùng.

Nền tảng giao hàng

Người giao hàng gần một nhà hàng được ghép khi đơn hàng sẵn sàng.

Tìm cửa hàng

Khách hàng thấy các cửa hàng gần nhất trong một hình hộp quanh khung nhìn bản đồ.

Tích hợp sẵn

Bạn nhận được gì

Vị trí trực tiếp

GEOADD thêm hoặc cập nhật thành viên theo kinh độ và vĩ độ.

GEOADD

Tìm theo bán kính và hình hộp

Quanh một điểm hoặc một thành viên, sắp xếp theo khoảng cách, giới hạn theo số lượng.

GEOSEARCHGEOSEARCHSTORE

Khoảng cách và vị trí

Giữa các thành viên, theo đơn vị bạn chọn.

GEODISTGEOPOS

Bên dưới là sorted set thông thường

Xóa thành viên và đếm chúng bằng các lệnh sorted set mà bạn đã biết.

ZREMZCARD

Câu hỏi thường gặp

Làm sao xóa một tài xế đã ngoại tuyến?

Một chỉ mục địa lý là một sorted set, nên ZREM xóa thành viên đó.

Tôi có thể tìm trong một hình chữ nhật không?

Có. GEOSEARCH BYBOX nhận chiều rộng và chiều cao quanh một điểm hoặc một thành viên.

Hỗ trợ những đơn vị nào?

Mét, ki lô mét, feet và dặm.

Trường hợp sử dụng liên quan

Thử trên khối lượng công việc của chính bạn

HotKV nói giao thức Redis, nên bạn có thể trỏ một client hiện có tới nó và chạy chính những lệnh này.