面试面经 · 腾讯TEG
【腾讯TEG】【后端开发】【一面】手撕KV存储+存储方向深度拷问
【腾讯TEG】【后端开发】【一面】
基本信息
| 项目 | 内容 |
|---|---|
| 公司 | 腾讯TEG(技术工程事业群)云架构平台部 |
| 岗位 | 后台开发 |
| 轮次 | 技术一面 |
| 时间 | 2025年7月 |
| 面试时长 | 约75分钟 |
| 面型体感 | 双机位面试,压力较大,手撕题有深度 |
| 结果 | 通过 |
面试题目(按提问顺序)
- 自我介绍(2分钟)
- 挑简历中一段实习经历深入拷打(约10分钟),追问具体技术难点和解决方案
- 简历项目整体拷打(约15分钟),重点问项目架构设计和技术选型决策
- 手撕代码:给定哈希函数,使用哈希桶实现一个 KV Cache,要求小于 4K 的记录使用二级索引
- 讲讲你的设计思路?为什么这么设计二级索引?
- 了解 DB 存储吗?(候选人说不了解,面试官未深追)
- C++ 虚函数的实现原理?虚表是怎么工作的?
- 构造函数可以是虚函数吗?为什么?
vector和list的区别?各自适用场景?- 访问
vector的迭代器时可以删减元素吗?list呢? map的底层实现是什么?红黑树有什么特点?- 常见的二叉平衡树有哪些?红黑树和 AVL 树的区别?
- 网络字节序是大端序还是小端序?
- TCP 三次握手的过程?TIME_WAIT 状态为什么需要 2MSL?
- epoll 的 ET 和 LT 模式有什么区别?
面试感受 / 反馈
- 面试官节奏紧凑,手撕环节占了大头时间
- 双机位要求,需要提前调试好设备
- 存储方向岗位,进来后具体做对象存储/块存储/文件存储/KV存储中的某个组
- 一个组大约二十多人,不需要存储背景,可以进来再学
- 手撕题有难度,需要在限定时间内设计合理的数据结构
准备建议
- 手撕 KV 存储是腾讯存储方向的常见题,建议练习哈希桶 + 二级索引的设计
- C++ 基础(虚函数、STL容器)是必考内容
- 网络编程(TCP、epoll)要熟练掌握
- 项目要能讲清楚技术选型的原因,不要只说用了什么
反问示例
- 具体工作内容是什么?(答:对象存储、块存储、文件存储、KV存储,具体组进来才知道)
- 一个组大概多少人?(答:二十多个)
- 需要提前有存储背景吗?(答:可以进来再学)