面灵AI

bigo后端二面面经

轮次
二面
时间
2026-09
来源
牛客网

《面试题目》

  1. Redis String 有哪些编码方式?达到什么条件会切换编码?
  2. TCP 半连接队列满时客户端会超时还是被拒绝?端口不可用时表现如何?
  3. 如何设计点赞 QPS 2000、热榜查询 QPS 5 万、实时筛选 3 小时数据的系统?
  4. 如何实现一个并发安全的 LRU?

《参考解析》

  1. Redis String 会根据值形态选择整数、嵌入式字符串或 SDS 等表示,编码切换由长度和内容决定;具体阈值应以目标 Redis 版本配置为准。
  2. 半连接队列溢出时可能丢弃握手包导致重传和超时,也可能触发内核保护策略;本地端口耗尽通常表现为连接建立失败,需结合 errno 和抓包确认。
  3. 写入侧按用户和内容做分片计数,热榜用 ZSet 或流式聚合维护时间窗口,查询侧按分片合并;通过过期桶、增量更新和缓存保证 3 小时实时性,不能靠查询时删除数据。
  4. 哈希表加双向链表可实现 O(1) LRU,并发时用互斥锁保护查找、移动和淘汰的复合操作,或将访问串行化后批量更新。