腾讯TEG云架构平台部后台一面
1. 先自我介绍。
2. 询问项目是否还能有优化的点?项目用到了redis,redis挂了的话怎么办?(一开始没有答通过主从复制来实现redis的可用性)
3. 项目的排队用什么做的?如果要实现优先级怎么办(sortedSet)?sortedSet的底层数据结构是什么?(跳表)
4. 答完通过主从复制来实现redis的可用性之后就问对redis的主从复制了解多少?(讲了2.8版本和2.8版本之后的一些区别,但是细节上的是什么命令并没有提到。)
主机向从机发送哪一些内容?(日志文件,偏移量,主服务器的id)。
5. 有没有了解过redis的源码(答了看了一点就没有继续问了),之后问了rehash是怎么实现的(大致说了过程。)
6. ACID中的I是什么?如果实现个隔离性?MVCC怎么实现的?(说了隐藏列,undo段。感觉说的不是很清晰)
7. 知道DoubleWrite嘛?(听过,没详细了解)
8. redo log中的事务都是已经提交的嘛?(不一定)如果确定redo log中的日志是不是已经提交的了(说了用checkpoint)?checkpoint可以起到什么作用?
9. poll和epoll的区别?边缘触发和水平触发了解过嘛(听过,知道是epoll的一些触发机制)?
10. upd如何实现成tcp?
11. 进程间的通信方式?
12. mysql的异步复制和redis的有什么区别?(说了自己的理解觉得差不多,发送日志文件,类似于偏移量的属性等等)
算法题:《最接近的三数之和》leetcode原题:https://leetcode-cn.com/problems/3sum-closest/(刚好没有写过,写了一个排序的解法,但是应该是错的,面试官看时间快到了也没有说什么。)
反问:建议
1. 项目一定要做好横纵对比,要想清楚问什么最后采用这种方式。
2. 写到简历上的每个点一定要弄清楚来,因为很有可能会被往深了问。
总结:
1. 每个知识点最好是能够自己组织语言说出来,面试过程中经常不确定要从哪里说起才行。
2. 跟面试官说的每个知识点一定要弄清楚,就像水平触发、边缘触发,学习epoll一定会听说过,但是当时学的时候偷懒就跳过去了,现在报应就来了。