正在打开每日关注
正在打开每日关注
视频以面试题说明大 HashMap 扩容的阻塞风险,并借 Redis 渐进式 Rehash 讨论优化思路。
他用的就是渐进式Rihashi
视频围绕“1G HashMap 扩容时用户请求会怎样”展开:其核心判断是,扩容需创建更大的新数组并迁移既有元素;若迁移工作落在处理请求的线程上,该请求会等待迁移完成。
可借鉴之处在于,它把一次性迁移拆解为渐进式迁移:保留新旧两套结构,在后续读写请求中分批搬迁数据,查询优先新结构、未命中再查旧结构,以降低单次扩容的可感知延迟。视频还提到可参考“多线程扩容”的思路提升搬迁效率。
边界与风险是:这是面试场景的概括,未说明 Java 版本、具体容器实现、并发访问方式、负载因子、内存余量及请求模型;因此不能直接据此判断真实系统的阻塞时长或线程安全性。Redis 的渐进式 Rehash 表述及多线程扩容方案也应结合官方实现和目标运行环境复核。对于实际服务,预估容量、控制扩容时机、压测尾延迟与验证内存峰值同样重要。