2026-09-08 23:02
200万个司机,怎么瞬间找到离你最近的那个?🚗 打车软件每天都在回答这个问题。最笨的办法:把你和200万个司机的距离全算一遍。一次叫车200万次计算,服务器直接烧了🔥 实际用的是一个很优雅的思路:Geohash(地理哈希) 🌍 把地图切成一个个格子,每个格子一串短编码 ✂️ 编码每多一位,格子缩小到原来的四分之一:"9q8" 是一片156公里的区域,"9q8yk" 就是一个街区 🔑 关键性质:离得近的地方,编码前缀相同 于是查询变成:你的位置直接哈希成一个格子id,取出这个格子加周围8个邻居,只看这9个格子里的司机,算一小把距离,留最近的5个,结束✅ 200万次距离计算,变成7次。整个查询就四行。 这就是Uber、滴滴、美团们"附近的人/车/店"背后的索引结构,也是系统设计面试的高频考点📝 想系统练习系统设计,可以来 codemia.io #系统设计 #程序员 #后端开发 #geohash #技术面试 #计算机 #互联网大厂 ...