叫車與計程車
在毫秒內找到附近的司機,並以邀請鎖防止重複派單。
在半徑或矩形範圍內找出最近的司機、門市或裝置,即時位置每隔幾秒更新一次。
每次更新都會取代司機先前的位置。
以真實 HotKV 指令與範例回覆呈現的動畫導覽。點擊任一步驟即可跳到該步驟。 指令與回覆維持英文,與您在 HotKV 中輸入及看到的完全一致。
要把乘客配對給最近的司機,或把顧客配對給最近有庫存的門市,需要即時掌握數千個移動中的位置,並在毫秒內給出答案。具備空間索引的關聯式資料庫,很難應付每秒這麼多的更新。
位置存放在地理空間索引中。每位司機每隔幾秒用 GEOADD 更新自己的位置,GEOSEARCH 則傳回半徑或矩形範圍內的所有人,由近到遠排列並附上距離。同一個索引也能回答門市查詢與配送區域的查詢。
每次更新都會取代司機先前的位置。
GEOADD drivers:berlin 13.4050 52.5200 driver:17 13.3889 52.5170 driver:23找出 3 公里內最近的五位司機,由近到遠排列。
GEOSEARCH drivers:berlin FROMLONLAT 13.4000 52.5190 BYRADIUS 3 km ASC COUNT 5 WITHDIST鎖定司機,讓兩位乘客不會叫到同一輛車。
SET offer:driver:17 rider:42 NX EX 15索引中兩個成員之間的距離。
GEODIST drivers:berlin driver:17 driver:23 km在毫秒內找到附近的司機,並以邀請鎖防止重複派單。
當訂單備妥時,餐廳附近的外送員會被配對上。
顧客會看到地圖檢視範圍內最近的門市。
GEOADD 依經度與緯度新增或更新成員。
GEOADD以某個點或某個成員為中心,依距離排序,並以數量限制。
GEOSEARCHGEOSEARCHSTORE成員之間的距離,單位由您選擇。
GEODISTGEOPOS可用您熟悉的有序集合指令移除成員並計數。
ZREMZCARD地理空間索引就是有序集合,所以用 ZREM 即可移除成員。
可以。GEOSEARCH BYBOX 接受以某個點或某個成員為中心的寬度與高度。
公尺、公里、英尺與英里。