面灵AI
时间
2026-08
来源
牛客网

《面试题目》

  1. 时间:8月13日
  2. 形式:一面,45分
  3. 自我介绍后开始问
  4. 附近司机列表怎么查?
  5. 位置频繁上报,数据库扛不住怎么办?
  6. 派单消息怎么保证同一订单只被一名司机接走?
  7. Redis GEO适合存什么数据?
  8. MQ消息积压怎么定位?
  9. 接口变慢先看哪些指标?
  10. synchronized和ReentrantLock怎么选?
  11. 手写最长无重复子串。
  12. 位置上报这块我开始说全部写Redis,面试官追问历史轨迹和Redis故障。我补成实时位置放Redis,轨迹异步写入存储,消费落后时先保留最新坐标并监控积压。接单用数据库条件更新抢状态,影响行数为1才算成功。算法滑动窗口写得比较顺,边界口述了一遍。

《参考解析》

  1. Redis常用于缓存、分布式锁和计数。缓存与数据库更新通常采用“先写数据库、再删除缓存”,并通过重试、延时双删或消息补偿处理删除失败。
  2. MySQL索引通常使用B+树,叶子节点按顺序连接,适合范围查询;设计索引时结合选择性、最左匹配原则和执行计划,避免无效索引与回表开销。
  3. 算法题先写出不变量和边界条件,再分析复杂度;常见数组、链表和树问题可分别使用双指针、哈希表、递归或迭代遍历,目标是在线性或对数复杂度内完成。