36、Redis 单线程:为什么 Redis 用单线程而 Memcached 用多线程你好,我是大明。今天我们来探讨一下Redis 高性能的原因。 这个问题在面试中还是很常见的,原因也很简单,除了 Redis 你基本上没有听过其他采用单线程模型的中间件,所以这就凸显了 Redis 的与众不同。 而且这个问题也很有现实意义。大部分时候对...2026-01-03后端工程师的高阶面经
35、缓存问题:怎么解决缓存穿透、击穿和雪崩问题你好,我是大明。今天我们再来聊一个缓存中的热门面试话题:怎么解决缓存穿透、击穿和雪崩问题。 这个问题之所以常见,是因为你在使用缓存的过程中一不小心就会遇到它们。比如说在前面的课程里面我给你讲过,如果缓存崩溃,那么大量请求就会落到数据库上,直接把数据库...2026-01-03后端工程师的高阶面经
34、缓存一致性问题:高并发服务如何保证缓存一致性你好,我是大明。今天我们来聊一个面试缓存必然会涉及的一个问题:怎么保证数据一致性? 上一节课我详细分析了各个缓存模式,你会发现这些缓存模式要么存在数据丢失的可能,要么在某一段时间内总是会不一致。那么有没有能够彻底解决缓存一致性的方案呢? 这节课我就带...2026-01-03后端工程师的高阶面经
33、缓存模式:缓存模式能不能解决缓存一致性问题你好,我是大明。今天我们来学习缓存的另外一个热点——缓存模式。 缓存模式在面试中属于高频问题,但是大部分人的回答都会有两个缺陷:一个是不够完整,也就是只知道一部分缓存模式;另外一个是不够深入,也就是只能泛泛而谈。尤其是有些面试官会故意问你怎么用缓存模...2026-01-03后端工程师的高阶面经
32、缓存淘汰策略:怎么淘汰缓存命中率才不会下降你好,我是大明。今天我们来聊一个使用缓存的时候绕不开的话题——如何淘汰键值对? 这个问题在面试中也很常见。大多数人都能把八股文背好,也就是常见的 LRU 之类的策略都能回答出来。而它在面试中的独特优势,就是能够根据业务设计出花样繁多的解决方案。如果你...2026-01-03后端工程师的高阶面经
31、缓存过期:为什么 Redis 不立刻删除已经过期的数据你好,我是大明。今天我们来讨论一个全新的话题——缓存。 缓存在实践中、面试中的重要性不言而喻。应该说,缓存用好了就能解决你大部分的性能问题。反过来,如果缓存没有用好,那么系统性能是不可能好的。 缓存在面试中也分成两个方向:一个是理论上缓存的设计,包括...2026-01-03后端工程师的高阶面经
30、Kafka 综合运用:怎么在实践中保证 Kafka 高性能你好,我是大明。今天我们来聊 Kafka 的最后一个话题——怎么在实践中保证 Kafka 高性能?也可以说,怎么在业务里面优化使用 Kafka 的性能。 在前面微服务部分,我就说高并发可遇不可求,而高可用和高性能是可求的。在追求高性能的时候,Kafk...2026-01-03后端工程师的高阶面经
29、高性能:Kafka 为什么性能那么好你好,我是大明。今天我们来讨论一个问题,Kafka 的性能为什么那么好? Kafka 的高性能话题也算是热点了,如果你面试的公司在并发量或者数据量上已经到了一定地步,那么面试的时候大概率逃不过这个问题。 大部分人面不好这个部分的原因只有一个:Kafk...2026-01-03后端工程师的高阶面经
28、架构设计:如果让你设计一个消息队列,你会怎么设计它的架构你好,我是大明。今天我们学习消息队列的架构设计,也就是如果让你设计一个消息队列,你会怎么做。 这个话题在面试中属于很难的一类,它要求你不仅要对 Kafka 本身有很深刻的理解,也要对分布式系统设计与实现有很深刻的理解。而且你还要在面试短短几分钟内说清...2026-01-03后端工程师的高阶面经
27、重复消费:高并发场景下怎么保证消息不会重复消费你好,我是大明。今天我们来讨论一个在消息队列里面非常常见的话题——重复消费。 通过前面几节课的学习,我相信你已经发现了,很多方案都会引起一个问题:消息重复发送或者重复消费。而解决的思路基本上一致,就是把消费者设计成幂等的。也就是说,同一个消息,不管消...2026-01-03后端工程师的高阶面经