前言日常Redis开发与面试中热点Key、LRU、LFU是高频考点多数开发者容易割裂看待单独记热点靠QPS判断、单独背诵LRU和LFU区别。实际上热点Key的判定逻辑正是Redis设计LFU淘汰算法的底层思想热点不能仅凭访问QPS衡量访问时序、流量分布、Key生命周期都是核心判定指标而LFU恰好融合访问次数访问时效性实现冷热区分本文从业务热点判定切入串联LRU与LFU原理、落地优化方案打通业务现象与底层算法逻辑。一、纠正误区高QPS≠高危热点时间分布才是风险放大器很多研发片面认为访问量大的Key就是热点Key需要紧急优化但Redis单实例本身具备强悍的命令处理性能均匀分布的高QPS缓存键很难引发线上故障。真正能造成CPU打满、分片倾斜、数据库雪崩的高危热点是高访问量叠加短时间流量高度集中也就是热点风险公式热点Key风险 ∝ 访问量 × 访问时间集中度从业务时序维度划分线上共5类典型高危热点1. 瞬时突发热点特征短时间窗口流量瞬间暴涨全天平均访问量并不突出。业务场景商品秒杀、整点签到、活动开抢、直播弹窗资源缓存。底层危害Redis单线程串行执行命令瞬间海量请求涌向同一个Key命令队列积压、实例CPU飙升、客户端连接耗尽直接引发服务不可用。2. 持续全时段高频热点特征全天候均匀稳定高QPS无明显流量低谷。业务场景项目全局配置、系统开关、公共基础字典缓存。底层危害长期占用Redis主线程算力挤占普通业务请求处理资源集群模式下Key固定绑定一个Hash槽导致对应分片节点负载居高不下集群资源失衡。3. 周期性定时轮询热点特征固定时间节点批量请求集中触发常见每隔5s/1min全服务统一轮询。业务痛点大量客户端同一时刻并发读同一个Key触发经典缓存惊群效应单点流量瞬间击穿阈值。4. 批量过期热点经典过期雪崩源头由Key生命周期访问时序共同导致也是线上数据库雪崩高发场景大量缓存设置完全一致的过期时间同一时刻大批量Key集体失效海量请求同时穿透至MySQL压垮数据库。本质是生命周期统一导致流量在失效瞬间集中爆发属于时间维度衍生热点。5. 冷键突发唤醒热点长期零访问的冷Key因业务变更突然批量调用若Key对应大Value或所在节点负载本就偏高突发流量极易造成实例性能抖动。补充集群模式热点放大机制Redis Cluster基于Hash Slot做数据分片同一个Key的哈希值固定只会落在单一分片节点。一旦该Key某一时段流量集中爆发目标节点CPU、网卡、内存资源被打满其余分片空闲出现严重分片倾斜热点危害被进一步放大。二、各类热点通用落地解决方案针对不同时序特征的热点采用分层优化思路瞬时/定时突发热点引入Caffeine/Guava进程本地缓存做多级缓存绝大部分请求拦截在应用本地规避直达Redis客户端侧对轮询请求增加随机时间偏移打散请求触发时机规避同一时刻集中访问。批量过期热点缓存过期时间追加随机毫秒偏移打散批量失效时间核心热点采用永不过期后台异步主动更新策略从根源杜绝集中过期。长期持续热点热点Key做数据拆分hot_01/hot_02拆分后数据落在不同Hash槽分摊分片压力集群前端部署Redis Proxy对热点流量单独限流隔离。三、从热点判定逻辑延伸LRU与LFU淘汰策略核心差异前文得出核心结论判定真实热点访问次数访问时效性这套规则完美对应Redis淘汰策略设计LRU只依靠访问时间无法精准识别热点LFU融合访问频次时间衰减机制成为热点场景最优淘汰策略。3.1 LRU最近最少使用仅依靠最后访问时间淘汰LRU核心逻辑淘汰当前所有Key中最后一次访问时间最早的数据。致命缺陷只关注访问时间远近完全不统计访问频次无法区分冷热数据偶尔访问一次的冷Key只要上次访问时间较新就能常驻内存长期高频访问的核心热点若短期静默闲置反而存在被误淘汰风险不符合真实热点判定标准。3.2 LFU最少使用访问次数访问时间双维度判定冷热LFU完全贴合热点判定逻辑双维度管控优先对比访问频次淘汰计数器数值更低的Key频次相同时再依据最后访问时间淘汰闲置更久的数据。额外增加频次时间衰减机制解决历史热点常驻内存问题计数器不会永久累加随时间自然降权曾经的历史高频冷键随时间推移计数器慢慢回落满足淘汰条件后被清理只保留当下活跃热点。示例佐证- KeyA历史1天访问1000次近1小时无任何请求历史热点- KeyB近1小时访问800次持续不停访问当前热点单纯统计总访问次数A更高但LFU经过时间衰减后A计数器大幅下降优先保留业务真实热点KeyB完美匹配线上热点定义。四、Redis底层LFU实现细节面试高频Redis对象头中lru字段占用24bit切换LFU淘汰策略allkeys-lfu/volatile-lfu时字段拆分复用高16bit存储Key最后访问时间戳对应热点判定的访问时序低8bit存储访问频次计数器对应热点判定的访问总量。两个关键补充机制8bit计数器上限255避免数值无限溢出全局定时频次衰减系统随时间自动统一降低全量Key计数器实现历史热点自然降温保障淘汰逻辑聚焦当前实时热点。五、全文总结业务层热点判定访问QPS只是基数访问集中时序、流量分布、生命周期是决定热点风险的关键流量在时间上扎堆才会催生高危故障算法层淘汰设计LRU仅依赖访问时间无法精准区分高频热点和偶然访问冷键LFU依托「访问次数访问时效性频次衰减」复刻人工判定热点的逻辑精准留存活跃热点、淘汰冷数据落地选型建议缓存业务存在大量热点Key场景maxmemory淘汰策略优先选用LFU搭配热点拆分、本地缓存、过期随机偏移方案从业务底层双维度规避热点故障。