ข้อมูลหลักการเดินทางและขนส่ง

การค้นหาเชิงภูมิศาสตร์

หาคนขับ ร้านค้า หรืออุปกรณ์ที่ใกล้ที่สุดภายในรัศมีหรือกรอบสี่เหลี่ยม พร้อมตำแหน่งสดที่อัปเดตทุกไม่กี่วินาที

หรือการค้นหาตามกรอบ
รัศมี
หน่วย
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

ข้างใต้คือ sorted set ธรรมดา

ลบสมาชิกและนับด้วยคำสั่ง sorted set ที่คุณรู้จัก

ZREMZCARD
ข้อมูลอ้างอิง:GEOADDGEOSEARCHGEODIST

คำถามที่พบบ่อย

ลบคนขับที่ออฟไลน์ได้อย่างไร

ดัชนีเชิงภูมิศาสตร์คือ sorted set ดังนั้น ZREM ลบสมาชิกได้

ค้นหาในสี่เหลี่ยมผืนผ้าได้ไหม

ได้ GEOSEARCH BYBOX รับความกว้างและความสูงรอบจุดหรือสมาชิก

รองรับหน่วยอะไรบ้าง

เมตร กิโลเมตร ฟุต และไมล์

กรณีใช้งานที่เกี่ยวข้อง

ลองกับเวิร์กโหลดของคุณเอง

HotKV ใช้โปรโตคอลของ Redis คุณจึงชี้ไคลเอนต์ที่มีอยู่มาที่ HotKV แล้วรันคำสั่งเดียวกันนี้ได้