字节日常实习后端一面凉经(中国交易与广告)
- 时间
- 2026-09
- 来源
- 牛客网
《面试题目》
- 文档切片大小如何确定,过大或过小有什么问题?
- 查询重写和召回流程分别解决什么问题?
- 模型回答错误时如何排查,向量过滤和元数据过滤先做哪个?
- ReAct 的核心流程是什么,如何避免无限循环?
- 如何防御攻击性指令?
- 先更新数据库再删除缓存能保证强一致吗?
- 删除缓存失败时如何保持数据库与 Redis 一致?
- Redis 持久化有哪些机制,为什么使用子进程?
- 消费失败或重复消费时如何保证业务幂等?
- Java 与 Python 的编译执行方式有什么区别?
- 如何删除链表倒数第 n 个节点?
- 如何检测服务之间的循环依赖?
《参考解析》
切片要在上下文长度、语义完整性和召回粒度之间压测取值;查询重写改善用户问题表达,召回再结合向量与关键词。缓存更新通常采用更新数据库后删缓存,并用重试、消息队列或订阅 Binlog 处理删除失败,不能宣称强一致。Redis 通过 fork 子进程做 RDB/AOF 后台工作以减少阻塞主线程。消费端以业务唯一键或去重表实现幂等。链表删除倒数第 n 个节点使用快慢指针;循环依赖检测可对依赖图做 DFS 三色标记。