bigo后端二面面经
- 轮次
- 二面
- 时间
- 2026-09
- 来源
- 牛客网
《面试题目》
- Redis String 有哪些编码方式?达到什么条件会切换编码?
- TCP 半连接队列满时客户端会超时还是被拒绝?端口不可用时表现如何?
- 如何设计点赞 QPS 2000、热榜查询 QPS 5 万、实时筛选 3 小时数据的系统?
- 如何实现一个并发安全的 LRU?
《参考解析》
- Redis String 会根据值形态选择整数、嵌入式字符串或 SDS 等表示,编码切换由长度和内容决定;具体阈值应以目标 Redis 版本配置为准。
- 半连接队列溢出时可能丢弃握手包导致重传和超时,也可能触发内核保护策略;本地端口耗尽通常表现为连接建立失败,需结合 errno 和抓包确认。
- 写入侧按用户和内容做分片计数,热榜用 ZSet 或流式聚合维护时间窗口,查询侧按分片合并;通过过期桶、增量更新和缓存保证 3 小时实时性,不能靠查询时删除数据。
- 哈希表加双向链表可实现 O(1) LRU,并发时用互斥锁保护查找、移动和淘汰的复合操作,或将访问串行化后批量更新。