大话面试更新日志
更新日志内容涵盖了自2024年1月份上线至 2024年6月25日 以来所有的变更,上线前的内容未做记录。
根据规划,最近会以并发编程内容为主(线程池、阻塞队列等),Kafka 消息队列内容为辅,全力冲刺 120 篇文档。
2024.8月更新日志
内容变更
- 缓存实战:先写DB再删除缓存解决缓存一致性? - 优化了先更新数据库再删除缓存极端情况下的描述
2024.7月更新日志
新增文章
- 消息队列:Kafka如何保证数据不丢失? - 俗易懂说明 Kafka 难理解的 ISR、HW、LEO、Epoch 等机制
内容变更
- 缓存实战:如何解决缓存击穿? - 补充缓存击穿在高并发情况下可能出现的极端情况,添加 tryLock 和分布式锁分片解决场景
2024.6月更新日志
新增文章
- 并发编程:了解线程池的工作原理么? - 生产使用线程池必读文章
- 并发编程:为什么不建议Executors创建线程池? - 生产避坑建议指南!
- 并发编程:如何处理线程池任务运行异常? - 开发人员必备技能,不知道可能会踩坑!
内容变更
- 缓存实战:什么是大Key? - 添加腾讯云大 Key 监控页面,微调内容
- 缓存实战:热点缓存数据如何预热? - 添加预热数据流程比较图,简单完善内容
- Redis:Redis宕机数据会丢失么? - 补充 RDB 和 AOF 流程图,以及混合持久化架构描述
- Redis:Redis为什么这么快? - 补充了关于高版本异步指令的相关描述
- Spring:@Configuration和@Component有什么区别? - 调整了关于 Lite 与 Full 模式特点的描述
- Redis:Redis如何实现到期删除的? - 补充了关于为什么要抽样而不是全量删除,以及关于通过 hz 参数调整定期删除频率相关的内容
文章重构
- 消息队列:为什么选择Kafka作为消息队列? - 补充答题话术,并大幅度优化了文章内容
- 缓存实战:如何通俗易懂说明缓存雪崩解决方案? - 重构文章结构,添加缓存雪崩流程图
- 缓存实战:如何通俗易懂说透缓存穿透解决方案? - 补充问题详解,添加大量实战代码帮助用户理解
问题修复
- 并发编程:线程池如何实现线程复用&超时回收? - 调整超时时间获取阻塞队列任务 API 命名错误,从 offer 修改为 poll
- 并发编程:了解线程池的工作原理吗? - 修正 runWorker 代码中关于线程退出部分代码的错误注释
2024.5月更新日志
新增文章
- 并发编程:如何监控线程池的运行性能指标? - 生产线程池应进行适当的监控以保障业务稳定运行
- 并发编程:如何感知线程池触发了拒绝策略? - 聊一聊公司业务场景中线程池应用场景
- 并发编程:如何解决CAS的ABA问题? - 仅知道CAS还不够,还得知道有什么问题
- 框架八股:什么是三级缓存?为什么需要? - 一文搞懂Spring三级缓存原理
2024.4月更新日志
新增文章
- 并发编程:ThreadLocal有哪些扩展实现? - 阿里开源TTL以及Netty扩展解决方案
- 并发编程:线程池如何实现线程复用&超时回收? - 一起学习线程池原理
- 并发编程:什么是CAS?有哪些使用场景? - 经典无锁化并发设计
内容变更
- Redis:Redis主从复制的原理是什么? - 补充了关于主从配置不一致导致在主从切换时造成数据丢失的问题
问题修复
- 框架八股:Bean是线程安全的吗? - 修复关于单例作用域的错误描述
2024.3月更新日志
新增文章
- 并发编程:ThreadLocal什么场景内存泄露? - 熟读文章原理并避免泄露场景
- 并发编程:项目重启或宕机时线程池任务还没处理完? - 生产使用线程池必读文章
- 并发编程:线程池有哪些应用场景? - 聊一聊公司业务场景中线程池应用场景
- 并发编程:ThreadLocal底层实现原理? - 深入解析ThreadLocal运行机制
- Redis:Redis集群为什么不基于一致性哈希算法实现? - 面试中被问到就是赚到,賊亮点
内容变更
- Redis:什么是Redis-Cluster集群? - 完善了客户端如何访问一个正在迁移的Key的场景
- Redis:Redis的RDB是怎么实现的? - 补充了关于写时复制以内存页为单位复制的描述
- Redis:Redis如何实现到期删除的? - 补充关于到期删除的具体流程,并修正关于主动删除频率的不正确描述
文章重构
- Redis:Redis为什么这么快? - 重构文章内容,变更文章配图等
问题修复
- 并发编程:ThreadLocal底层实现原理? - 修正了关于 HashMap 哈希值的不准确描述;修正了关于没有显式移除 ThreadLocalMap 中数据的 API 的错误描述;
- 分布式:什么情况下分库?分表?分库分表? - 修改读写分离解决连接数不够错误描述
- 框架八股:Bean是线程安全的吗? - 修复关于示例中Bean作用域错误的问题
2024.2月更新日志
新增文章
- Redis:什么是Redis-Sentinel集群? - 主从模式和集群模式中间过渡架构
- Redis:Redis的跳表是什么? - 大厂面试官“热爱”问题
- 缓存实战:先写DB再删除缓存,结果Redis宕机? - 八股最喜欢问的极端场景题之一
内容变更
- Redis:Redis常用内存淘汰策略? - 补充关于大数据量下使用 LFU 算法建议调大抽样大小相关的说明,并补充关于内存淘汰和从到期字典抽样的具体过程
问题修复
- Redis:Redis如何实现到期删除的? - 修正关于扫描到期字典的描述
- Redis:Redis的跳表是什么? - 修正关于跳表范围操作不准确的描述
- Redis:Redis主从复制的原理是什么? - 删除多余文字
- Redis:什么是Redis-Cluster集群? - 删除多余文字
2024.1月更新日志
新增文章
- Redis: 什么是Redis-Cluster集群? - 详解Redis-Cluster集群热门问题
- Redis:Redis主从复制的原理是什么? - 掌握集群数据同步方案原理
- Redis:Redis如何实现高可用架构? - 面试常问Redis如何完成高可用
- 消息队列:Kafka消息“拉”模式还是“推”模式? - Kafka和RocketMQ采用同一种消费架构
- 消息队列:Kafka发送一条消息的流程? - 从生产者到Broker全方位解析原理
内容变更
- 消息队列:RabbitMQ的特点和性能 - 修改 AMPQ 协议图解