IMG_6567(20200214-204710).PNG

这是我当时约面试的时间表,其实面试多了你会发现一个规律,如果一个公司你一面过的很顺利,后面不管三面四面还是五面,都会比较顺利。因为大家的提问方式,角度都很类似,很多时候都是在跟不同的面试官说同样的话。

多数的公司总体上面试都是以自我介绍+项目介绍+项目细节/难点提问+基础知识点考核+算法题这个流程下来的。有些公司可能还会问几个实际的场景类的问题,这个环节阿里是必问的,这种问题通常是没有正确答案的,就看个人的理解,个人的积累了。剩下的就没啥了,都是换汤不换药,聊项目就看你自己对你自己的项目是否理解的透彻,比如经常问你你为什么选择这个技术,为什么这么处理之类的,常考的基础的知识点就那么多,最后算法就是靠刷题。

这篇我主要把常考的问题po一下,频率出现过高的我都用(必考)标注了,答案我也整理了,但是整理的不够好,怕误导大家,我放到github上大家的自行查看(不保证正确性),也是我做LeetCode的仓库。

GitHub链接:https://github.com/yuanguangxin/LeetCode/blob/master/Rocket.md

ZooKeeper

  1. CAP定理
  2. ZAB协议
  3. leader选举算法和流程

Redis

  1. Redis的应用场景
  2. Redis支持的数据类型(必考)
  3. zset跳表的数据结构(必考)
  4. Redis的数据过期策略(必考)
  5. Redis的LRU过期策略的具体实现
  6. 如何解决Redis缓存雪崩,缓存穿透问题
  7. Redis的持久化机制(必考)
  8. Redis的管道pipeline

Mysql

  1. 事务的基本要素
  2. 事务隔离级别(必考)
  3. 如何解决事务的并发问题(脏读,幻读)(必考)
  4. MVCC多版本并发控制(必考)
  5. binlog,redolog,undolog都是什么,起什么作用
  6. InnoDB的行锁/表锁
  7. myisam和innodb的区别,什么时候选择myisam
  8. 为什么选择B+树作为索引结构(必考)
  9. 索引B+树的叶子节点都可以存哪些东西(必考)
  10. 查询在什么时候不走(预期中的)索引(必考)
  11. sql如何优化
  12. explain是如何解析sql的
  13. order by原理