字节后端 实习
字节一面
- 自我介绍+项目+面经+算法
- 秒杀的流程
- 限流怎么做的
- token存在哪?(限流的程序放在哪)
- 数据库与缓存的一致性问题
- redis减库存使用的什么命令?判断是什么命令?
- 订单延时取消怎么做?
- 延时队列怎么实现?考察原理
- Http和https的区别?
- Https的原理?
- CA证书
- http的无状态指的是什么?
- 说一下B树和B+树的区别?
- 主键索引和非主键索引的B+树的区别?
- 为什么非主键索引的叶子节点为什么不存记录的地址?
- 什么是幻读?怎么解决幻读?
- 既然串行化能解决幻读,为什么还用间隙锁去解决幻读?
- 算法题:给定一个单链表,链表的奇数位置节点递增,偶数位置节点递减,把它变成一个递增单链表。
字节二面
- 自我介绍+项目+设计题+智力题+算法
- 项目的秒杀流程,如何处理高并发的?
- redis减库存成功但是已经超时,用户重新请求怎么处理?
- 限流怎么设置(分布式,系统总qbs1000,怎么设置?)
- 系统设计:微信步数排行榜(如何存储,如何查询出排行榜)
- 接上题,假设微信1个小时上传一次步数,当用户查看排行榜时,拥有100个好友的时候怎么做,5000个好友呢?
- 接上题,5000个好友的时候,都查询出来吗?
- 智力题:一个圆形的棋盘,棋盘没有方格(即棋子可以随意摆放),棋子也是圆形的,两人交替落子,只要棋盘还能放得下棋子就可以落子,最后谁的棋子多谁赢,问先手如何落子能赢。
- 消息队列:RabbitMQ有什么特点
- 消息队列有什么作用
- 生产者给消息队列发送消息的时候,消息队列反馈的ack丢失,怎么办?
- 生产者没收到ack,重发消息,会重复减库存吗?
- 算法题:第K大