MySQL 热点数据怎么优化?为什么加缓存?
热点数据(高并发读同一条/同一批数据)打 DB 的问题:连接打满、Buffer Pool 命中后仍是单点。优化:① Redis 缓存(Cache Aside):读先查缓存,miss 回源 DB 并回填;写先更新 DB 再删缓存;② 本地缓存(进程内,如 Caffeine):进一步减 Redis 压力(注意一致性);③ 热点 key 优化:缓存多副本(key 加后缀分散)、逻辑过期;④ 防击穿:热点 key 加锁重建(互斥锁);⑤ 防雪崩:过期时间加随机;⑥ 防穿透:布隆过滤器/空值缓存;⑦ DB 侧:合理索引 + Buffer Pool 命中。原则:缓存是加速不是数据源,DB 保底。
一起交流
分享经验,让问题更进一步
讨论,从你的观点开始
还没有回复,欢迎补充经验或分享不同的思路。