1. 自我介绍 2. redis结构都有哪些 答:string,list,set,zset,hash,bitmap,geo,hyperloglog,stream 3. zset是怎么实现的 答:skiplist + hash 4. zset查找key的rank的复杂度 答:O(logn) 5. 讲一讲redis的string 答:底层由三种结构实现int,字符串长度小于20且纯数字,embstring,长度小于40,或小于20不为纯数字,rawstring,字符长度大于等于40 6. 知道embstring和raw string为什么以40为分界线吗 没答出来 7. redis集群模式了解吗 答:讲了slot那些 8. redis分布式锁了解吗 答:口头实现了基础的带过期的分布式锁,uuid做value的那种 9. 集群模式下,某个分布式锁所在的slot挂了,这锁怎么解决 没答出来 10. 介绍下自己的项目 11. mysql的mvcc了解吗 答:为了实现隔离级别的一种机制,每行数据尾部有存储一些数据,例如事务ID,指向log中sql的指针等 12.mysql的隔离级别 答:blablabla,就那几种 13.mysql锁了解吗 答:乐观锁,悲观锁,行锁,表锁,间隙锁,读锁,写锁。每个都大概解释了一下 14. mysql间隙锁的底层实现 没答出来 15. redis的hash的rehash了解吗(上面忘说了) 没答出来 16. 算法 答:leetcode中等偏简单,多嘴了一句说我做过类似的,用了20min,后来被说coding不行,太慢了。 感受:其实三个月前有面试过字节,但是那时候新项目启动,比较忙,没好好准备,挂了。这次稍微准备了下,但是感觉这次难度剧增,底层问得好深,面试官不苟言笑,也有点紧张。