简历上写: “精通 Redis,深入理解其底层原理与集群架构。”面试官追问:“你说精通,那 Redis 的持久化机制 RDB 和 AOF,在极端情况下(比如正在写 RDB 时机器断电)会有什么数据一致性问题?”“Redis 6.0 引入多线程是为了解决什么问题?为什么只用了多线程处理网络 IO,而命令执行还是单线程?”“你们线上集群是怎么做的?Codis 还是 Redis Cluster?如果是 Cluster,在扩容 rebalance 的过程中,如果有大量 key 需要迁移,对线上业务会有什么影响?你们是怎么平滑过渡的?”当场反应:大脑一片空白,支支吾吾地说:“呃... 这个... 我们项目里主要就是用 Redis 做缓存,具体的底层细节和集群运维主要是运维团队在负责,我... 我主要关注的是业务层面的使用。”