3.4百度服务端开发社招一面面经

百度 · 服务端开发(Go-PHP) · 一面 · 2026-03

《面试题目》

一、自我介绍

二、项目深挖

  1. 登录token校验设计、生成逻辑及过期时间策略
  2. 公司项目模块分工与接口设计
  3. ES(Elasticsearch)的业务使用场景
  4. Redis的使用场景、选型理由及缓存判定策略
  5. 报500错误的原因排查及使用Linux命令(cat/grep)定位日志方法
  6. Redis数据类型应用及SETNX锁的底层实现

三、手撕代码

  • 设计微博用户关注表(包含建表语句、主键、索引、注释、约束条件,并阐述设计思路)

四、闲聊与AI相关

  • 反问团队业务、技术栈及面临的挑战
  • AI在项目中的应用及对AI发展的见解
  • 个人背景:目前base地、工作年限及离职原因

《参考解析》

  1. Redis SETNX锁底层:SETNX利用Redis单线程特性实现互斥,通常配合SET key value NX PX expiration实现分布式锁,防止死锁。底层通过Redis字符串类型实现。

  2. 500错误排查:500错误通常是服务器端代码异常。排查思路:先查看Nginx访问日志定位请求,再通过cat/grep或tail -f查看业务日志中的Stack Trace,重点检查空指针、数据库连接失败或外部依赖超时。

  3. 微博关注表设计:关注表应包含 id, follower_id (关注者), following_id (被关注者), create_time。重点在于建立 (follower_id, following_id) 联合索引以支持查询关注列表,同时需考虑约束以防止重复关注。

  4. Redis缓存策略:通常根据数据访问热度(高频读)、数据实时性要求及对数据库的压力进行判定。需注意缓存击穿、穿透及雪崩的防范措施。