秋招面试
- 时间
- 2026-08
- 来源
- 牛客网
《面试题目》
- 东哥东哥我爱你,快让我过吧[羞涩]
- 自我介绍一下,简单介绍自己的技术背景。
- Redis 常见的持久化方式有哪些?RDB 和 AOF 的实现机制有什么区别?线上环境一般如何选择?
- Redis 出现缓存穿透、缓存击穿、缓存雪崩时,分别有哪些解决方案?
- 在电商大促场景下,某个热门商品访问量和库存操作量非常高,如果大量请求直接访问 Redis,会产生什么问题?
- 如果热点商品不仅查询量大,同时更新库存的请求也非常频繁,仅依靠本地缓存是否能够解决?为什么?
- 针对高并发写热点问题,你有哪些优化思路?如果引入消息队列进行流量削峰,如何保证消息可靠性和消费顺序?
- 除了消息队列之外,还有哪些方式可以避免数据库因为突发流量导致压力过大?
- 日常开发或者代码 Review 时,你会如何判断一条 SQL 是否存在性能问题?
- MySQL 建立联合索引时,最左匹配原则具体是什么?实际查询中有哪些注意事项?
- Kafka、RabbitMQ、RocketMQ 这些消息中间件有什么区别?Kafka 的优势和适用场景是什么?
- 手撕代码:基于阻塞队列实现一个简单的生产者-消费者模型(共
《参考解析》
- Redis常用于缓存、分布式锁和计数。缓存与数据库更新通常采用“先写数据库、再删除缓存”,并通过重试、延时双删或消息补偿处理删除失败。
- MySQL索引通常使用B+树,叶子节点按顺序连接,适合范围查询;设计索引时结合选择性、最左匹配原则和执行计划,避免无效索引与回表开销。
- 并发问题应先明确共享状态和一致性边界,再选择锁、CAS或队列。线程池需要根据任务是CPU密集还是IO密集设置核心线程数、队列容量和拒绝策略,并监控活跃数与队列长度。