pdd一面:面试官直接让我“挖穿”Redis(含内推)

大家好,我是去年参加秋招的后端选手。刚经历了pdd的一面,热乎的面经奉上。pdd果然名不虚传,上来就是硬核三连,完全不问项目,直接揪着基础知识往祖坟上刨。整个面试30分钟,感觉像经历了一场高强度的技术论文答辩。

一、 面试开场:没有寒暄,直接亮剑

面试官准时上线,确认身份后,第二句话就是:

“我们来聊聊Redis吧,看你简历里写得很熟练。”

我心里一紧,知道这场恶战开始了。pdd的流量和并发决定了它对缓存的要求是极致苛刻的,Redis必然是考察重点。

二、 核心拷问:从使用到源码,一层层剥开

第一层:基础用法与场景(热身)

  • Q1:你们项目为什么用Redis?用了哪些数据结构?我的回答:主要做缓存和分布式锁。缓存用了String(简单KV)、Hash(存储对象,如用户信息)、Set(去重,点赞列表)、ZSet(排行榜)。面试官追问:为什么用户信息用Hash而不用String一次性存序列化后的JSON?我的思路:这里考察的是对数据结构的理解深度。我回答了三点优势:1)节省内存:Hash的ziplist编码在field数量少时非常紧凑;2)支持局部更新:可以单独修改一个field,而String需要序列化整个对象再写入;3)语义更清晰。

第二层:持久化与高可用(深入)

  • Q2:RDB和AOF的优缺点?如何选择?我的回答:RDB是快照,恢复快,但可能丢数据;AOF是日志,数据安全,但文件大、恢复慢。面试官追问:如果让你设计一个尽可能保证数据不丢失的方案,你会怎么配置?我的思路:这是考实战经验。我结合了两者:appendfsync everysec + 在低峰期定时执行BGSAVE。同时提到,在最新版本中,可以开启AOF和RDB的混合持久化(前提是了解其原理)。
  • Q3:讲讲主从同步的全过程。我的回答:从“首次全量同步”(master生成RDB,传给slave)到“命令传播”(后续通过AOF buffer进行增量同步)。面试官追问:如果网络闪断,slave重新连接后怎么同步断线期间的数据?我的思路:这是核心考点!我提到了复制积压缓冲区(repl_backlog_buffer)。slave会发送自己记录的master runid和offset,如果offset之后的数据还在buffer中,就进行部分重同步(psync),否则只能触发代价巨大的全量同步。

第三层:底层原理与扩展(扒底裤)

  • Q4:Redis为什么快?除了内存操作和单线程,还有别的原因吗?我的回答:1)I/O多路复用(我提到了epoll,这是必考点);2)高效的数据结构(如SDS、跳跃表等);3)避免上下文切换。面试官追问:详细说一下I/O多路复用,为什么它就能处理那么多连接?我的思路:我画图解释了select/poll的轮询机制和epoll的事件回调机制,对比了它们在连接数增多时的性能差异。强调了epoll如何将时间复杂度从O(n)降到O(1)。
  • Q5:(死亡问题)如果让你实现一个分布式锁,除了setnx,你还要考虑什么?我的回答:这是一个经典问题,我按步骤阐述:原子性获取锁:SET lock_key unique_value NX PX 30000(NX+PX原子命令,避免分开设置时死锁)。设置唯一值:value必须是唯一标识(如UUID+线程ID),确保只能释放自己的锁。安全释放锁:使用Lua脚本保证GET和DEL的原子性,防止误删别人的锁。可重入性 & 高可用:简单提了可重入的实现思路,以及RedLock算法及其争议。

三、 反问环节:展现思考深度

面试官问我有无问题,我没问薪资和流程,而是问了两个技术问题:

  1. “请问在pdd的实际业务中,Redis遇到的最大挑战是什么?比如是热key、大key,还是集群数据一致性方面?”(这表明我不仅会用,还关心生产环境的痛点。)
  2. “团队目前有在向Redis Cluster或Proxy架构迁移的计划吗?还是主要以Codis为主?”(这表明我了解业界主流方案,并对团队技术选型感兴趣。)

四、 复盘与心得

  1. 基础不牢,地动山摇:pdd面试完全能检验出你的知识是“背出来的”还是“理解透的”。每个问题都像一棵树,面试官会从树干问到树根的每一条须。
  2. 深度大于广度:与其每个技术都懂点皮毛,不如把一两个核心组件(如Redis、MySQL、MQ)挖到源码级深度。
  3. 心态要稳:遇到追问不要慌,这正是你展示思维过程的机会。可以把语速放慢,边思考边回答:“嗯,这个问题我的理解是...首先...其次...”。
  4. 准备要有方向:针对pdd,一定要把操作系统(进程线程、内存、IO)、网络(TCP/IP)、数据库(MySQL+Redis) 这三大块准备得滚瓜烂熟。

总结:pdd一面是一场硬仗,但也是一面镜子,能照出你技术的真实深度。感觉就像被一个高手“扒了一次技术底裤”,虽然过程紧张,但收获巨大。希望这份面经对大家有帮助,祝各位都能顺利过关!、

【拼多多集团-PDD校园招聘】内推链接:https://careers.pddglobalhr.com/campus/intern/detail?t=nBBIN2BBkz,内推码:nBBIN2BBkz。

全部评论

相关推荐

【一面】 1)介绍一个最能代表自己的项目2)项目里负责的边界是什么?哪些内容是亲手实现/验证的?3)电商领域预训练数据:低质过滤与去重会怎么做?用哪些简单指标快速判断数据质量?4) Pretrain 和 SFT 分别解决什么问题?5) Transformer 的基本结构怎么理解?6)多模态模型的大致结构是什么(图像编码器+连接层+ LLM )?最容易踩坑的点通常在哪里?7) SFT 数据如何更贴近业务:如何避免过度模板化?如何做基础的 train / test 去重来避免评测失真?8)对齐( RLHF / DPO 等)整体思路是什么:为什么需要偏好对/奖励信号?【二面】1)做过的最有影响力的一件事是什么?具体推动了什么变化?2)训练不稳定怎么排查( loss NaN 、 OOM 、吞吐下降)3) Long Context 常见思路有哪些?在业务里如何做"能看长文本但不太贵"的折中(摘要/分段/滑窗等)?4)如何做一套简单可执行的离线评测集?如何覆盖不同语言与类目?5)多模态场景怎么评估:如何检查"图文一致性/不编造信息"?优先加哪些自动化检查?6) Prompt /模板如何管理:如何版本化、如何回滚、如何避免一次改动导致整体波动?7) 手撕:实现一个最简单的 top - k 采样(给定 logits /概率,取 top - k 后重新归一化采样),并说明边界情况怎么处理。📳对于想求职算法岗的同学,如果想参加高质量项目辅导,提升面试能力,欢迎后台联系。
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
正在热议
更多
# 春招至今,你的战绩如何? #
8542次浏览 77人参与
# 你的实习产出是真实的还是包装的? #
1566次浏览 40人参与
# MiniMax求职进展汇总 #
23637次浏览 305人参与
# 军工所铁饭碗 vs 互联网高薪资,你会选谁 #
7307次浏览 40人参与
# 简历第一个项目做什么 #
31456次浏览 321人参与
# 当下环境,你会继续卷互联网,还是看其他行业机会 #
186738次浏览 1118人参与
# 巨人网络春招 #
11282次浏览 223人参与
# 不考虑薪资和职业,你最想做什么工作呢? #
152219次浏览 887人参与
# 研究所笔面经互助 #
118829次浏览 577人参与
# 重来一次,我还会选择这个专业吗 #
433244次浏览 3926人参与
# 简历中的项目经历要怎么写? #
309873次浏览 4177人参与
# 面试紧张时你会有什么表现? #
30461次浏览 188人参与
# 你今年的平均薪资是多少? #
212936次浏览 1039人参与
# AI时代,哪些岗位最容易被淘汰 #
63185次浏览 789人参与
# 我的求职精神状态 #
447929次浏览 3128人参与
# 你最满意的offer薪资是哪家公司? #
76370次浏览 374人参与
# 正在春招的你,也参与了去年秋招吗? #
363068次浏览 2635人参与
# 你怎么看待AI面试 #
179715次浏览 1222人参与
# 牛客AI文生图 #
21391次浏览 237人参与
# 职能管理面试记录 #
10774次浏览 59人参与
# 网易游戏笔试 #
6438次浏览 83人参与
# 腾讯音乐求职进展汇总 #
160532次浏览 1109人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务