这次的面试官很有大佬风范,与其说是面试,不如说更像在跟他探讨技术问题:顺着我的回答延续问题,没听懂的题目会换个方式提问,我没答上来的题他都会一一解答。让我想起高中时晚自习去找老师答疑的时光。虽然之前暑期在tx不同部门面了三次一面,早就知道tx喜欢反复捞人;但这次奇特地被同一个部门捞了,甚至连面邀邮件内容都一模一样(除了面试时间),一度让我以为是hr搞错了。1. 项目中Redis有无可用性的保证?2. Redis主从是什么,哨兵原理。3. 有没有配置过集群?4. 哨兵如何知道集群中有多少节点?5. 集群节点的数量应该做某些限制吗?6. 假设有一个表,需要处理大量读请求,应该如何设计?7. 什么字段适合加索引?8. 为什么说更推荐在 类型占空间小的列 创建索引?9. 主键索引和二级索引的b+树有什么区别。10. 为什么主键适合用自增ID?11. 隔离级别:RR和RC的区别12. 如果在联调时,无法调用接口,按照什么思路去排查问题?13. 如何判断能连接到对方主机?14. 如果能连接到对方机器,但是仍然无法调接口,怎么排查?15. TCP三次握手主要做了什么,为什么要握手?16. 序列号有什么用?17. 为什么序列号要随机生成?18. 四次挥手主要做了什么,为什么要挥手?19. 为什么主动关闭方要等待?等多久?20. 如果主动关闭方发送FIN后直接关闭连接,会有什么问题?(假设主动方是客户端被动方是服务器)这题的答案按面试官的解释,服务器会重传第三次挥手的FIN报文,但此时端口已经被回收,如果此时有新的连接想要使用这个端口,那么重传的FIN就会被新客户端误认为是服务器主动发送的FIN,出现意外情况。21. 对常用响应码的了解,404, 302, 500.22. HTTPS 相对 HTTP 做了什么改进23. 简要说说 SSL/TLS 握手流程24. 为什么握手时要传输三个随机数?25. 如果服务的内存占用很高怎么定位问题?CPU占用很高怎么定位问题?26. 为什么说Redis的单线程模型效率高?27. 高版本的Redis如何引入多线程?28. 有没有用过Nginx,用来做什么?29. 哪些场景会用到消息队列?面试没有考算法,但是问得真的很细,很多问题的角度完全没有想过。