缓存预热(Cache Warming)在系统启动或大促前非常关键。如果预热策略简单粗暴(例如一次性 然后全部写入 Redis),会瞬间产生极高的数据库 IO 和 CPU 负载,甚至直接将数据库打挂。 为了平滑地将数据加载到 Redis,避免拖垮数据库,通常需要从数据筛选、加载速率控制、批量写入、架构解耦等几个维度进行设计。以下是具体的落地策略: --- 一、 核心原则:只预热“热数据” 不要试图把数据库里的所有数据都塞进 Redis。内存很贵,且全量预热不仅慢,还会对 DB 造成毁灭性打击。 按业务规则筛选:只加载近期活跃用户、热门商品、即将开始的秒杀库存等。 按数据量截断:例如只查询访问排行榜前 10 万条的数据。 --- 二、 平滑读取 DB 的策略(防 DB 宕机) 1. 游标分批拉取(Chunking) 绝对不能使用一次性的大查询。必须分批次(Batch)从数据库拉取数据。 ❌ 错误做法: ❌ 性能差的分批: (深度分页会导致数据库扫描大量无效行,越往后越慢)。 ✅ 正确做法(基于主键游标): 每次记录上一批的最大 ID,下一次查询基于此 ID。 2. 速率控制与限流(T...