猿辅导面经

时间点如下:9.1投递 -> 9.6一面 -> 9.15现场面

一点思考

    猿辅导整体面试的比较简单,效率也挺高。一面是远程面试的,二面、三面、hr面是在现场面试的,听说加班不严重。

    今年找工作十分不易,市场候选人很多,能过就是钱给不到位!希望这篇面经能帮到大家~

猿辅导一面(9.6)

  1. 双栈排序,复杂度如何?

n^2

  1. kafka的使用场景。kafka高性能的原因是什么?kafka优化如何解决重复消费的问题。
  • 优雅下线
  • 上游在消息编写幂等id,下游存储这个id是否处理过。处理成功再提交offset
  1. mysql事务的原子性怎么实现的?redo log先写缓存,是否有丢失数据的风险?

答了两阶段提交

  1. redis过期key的逐出策略是什么?
  • 定期删除。是另一个线程么?

低版本用的是主要处理线程,会造成阻塞,每100ms检查一次,如果有超过1/4的过期,则会不断处理过期的key,造成阻塞。 https://segmentfault.com/a/1190000023311805
4.0版本开始支持异步删除
定期删除其实是一种折中方案,避免阻塞正常数据的处理。字典这种结构也一样,底层在扩容时是渐进式hash。

  • 执行时删除。

内存满了的逐出策略是什么?

volatile-lru:从已设置过期时间的数据集中挑选最近最少使用的数据淘汰
volatile-ttl:从已设置过期时间的数据集中挑选将要过期的数据淘汰
volatile-random:从已设置过期时间的数据集中任意选择数据 淘汰
allkeys-lru:从数据集中挑选最近最少使用的数据淘汰
allkeys-random:从数据集中任意选择数据淘汰
no-enviction(驱逐):禁止驱逐数据,直接报错

  1. mongodb为什么用b树?
  • mongodb nosql,非关系型数据库,文档型数据库,场景定位是:精准查询某条数据,搜索时直接查到某条数据,数据在每个非叶子节点上也有,不必遍历到叶子节点,不适合范围查询。这种场景能减少IO次数。

  • mongodb默认底层用的是wired tiger引擎

  • mysql一般使用的是范围查询或者等值查询(可能有多条数据),这个时候叶子节点是连在一起的,能顺序IO,会更快。

  • https://blog.csdn.net/weixin_41987908/article/details/105255119

  1. 协程和线程有什么区别?GPM模型

  2. 进程间通信方式有哪些?

  • 共享内存
  • 信号量
  • 信号
  • 管道(有名管道和匿名管道)
  • socket
  • unix domain socket

猿辅导二面(9.15)

  1. 二叉树最大宽度

    关键在于如何找到上层和下层的切换节点,如何分割的问题。这里可以通过两个队列来实现,上一个队列存上层的所有数据,当前队列存当前层的所有数据。然后遍历下一层。这里的关键在于一层一层便利,整层出队。

  2. 试用期内带团队,如果发现有这些方面的能力,会在一两个月后带团队。

  3. 是不是业务成熟饱和就跳槽?

  4. 六边形模型。领域建模。分布式事务和tcc

  5. 注册中心有哪些

    zk/consul/nacos/eureca

  6. 团队的流动率、司龄分布如何?业务挑战和技术挑战如何,技术如何解决这些业务问题呢?岗位对我的期望如何?

  7. 长连接如何实现的,保活如何做?保活才是关键。ping/pong

#秋招##社招##猿辅导##字节跳动##阿里巴巴#
全部评论
楼主怎么说 去嘛
1 回复 分享
发布于 2022-10-18 01:31 广东
楼主,mongodb用的是b+树吧,wiredtiger官方文档说“using a dada structure called B-Tree (B+ Tree to be specific)”
1 回复 分享
发布于 2022-10-20 11:51 上海
能问下,面试是根据你简历上的问吗,还是随便问的?
点赞 回复 分享
发布于 2023-08-25 14:09 辽宁
能问下一面后多久约二面的吗
点赞 回复 分享
发布于 2023-09-26 00:37 陕西

相关推荐

4 42 评论
分享
牛客网
牛客企业服务