-
缓存预热
- 缓存预热是什么
- 缓存预热就是系统上线后,提前将相关的缓存数据直接加载到缓存系统。避免在用户请求的时候,先查询数据库,然后再将数据缓存的问题!用户直接查询事先被预热的缓存数据!
- 解决方案
- 使用 @PostConstruct 、定时任务、手动处理 提前将数据设置到缓存中
- 缓存预热是什么
-
缓存雪崩
-
缓存雪崩是什么
- 缓存雪崩就是瞬间过期数据量太大,导致对数据库服务器造成压力
-
发生场景
- redis 主机挂了, Redis全盘崩溃,偏硬件运维
- redis 中有大量key 同时过期大面积失效,偏软件开发
-
解决+预防方案
- redis 中 key 设置为永不过期 or 过期时间错开
- redis 缓存集群实现高可用
- 主从 + 哨兵
- Redis 集群
- 开启Redis 持久化机制 aof / rdb,尽快恢复缓存集群
- 多缓存结合预防雪崩
- ehcache 本地缓存 + redis缓存
- 服务降级
- Hystrix 或者 sentinel 限流 & 降级
-
-
缓存穿透
- 缓存穿透是什么
- 缓存穿透 就是请求去查询一条数据,先查redis,redis里面没有,再查mysql,mysql里面无,都查询不到该条记录,但是请求每次都会打到数据库上面去,导致后台数据库压力暴增
- 解决方案
- 空对象缓存或者缺省值, 如果发生缓存穿透,可以针对要查询的数据,在Redis里存一个和业务部门商量后确定的缺省值 比如 零、负数、defaultNull等
- 使用布隆过滤器,将key放到布隆过滤器中,请求来了用布隆过滤器判断key是否存在,如果存在则走后续逻辑,不存在则直接返回
- 缓存穿透是什么
-
缓存击穿
- 缓存击穿是什么
- 缓存击穿就是大量请求同时查询一个key时,此时这个key正好失效了,就会导致大量的请求都打到数据库上面去,也就是热点key突然都失效了,MySQL承受高并发量
- 解决方案
- 差异失效时间,对于访问频繁的热点key,干脆就不设置过期时间
- 互斥更新,采用双检加锁
- 缓存击穿是什么
-
总结
Redis 缓存预热、雪崩、穿透、击穿
拜了佛冷2024-08-13 9:56
相关推荐
RestCloud13 小时前
SQL Server到Hive:批处理ETL性能提升30%的实战经验RestCloud14 小时前
为什么说零代码 ETL 是未来趋势?ClouGence16 小时前
CloudCanal + Paimon + SelectDB 从 0 到 1 构建实时湖仓DemonAvenger1 天前
NoSQL与MySQL混合架构设计:从入门到实战的最佳实践AAA修煤气灶刘哥1 天前
别让Redis「歪脖子」!一次搞定数据倾斜与请求倾斜的捉妖记AAA修煤气灶刘哥1 天前
后端人速藏!数据库PD建模避坑指南RestCloud2 天前
揭秘 CDC 技术:让数据库同步快人一步得物技术2 天前
MySQL单表为何别超2000万行?揭秘B+树与16KB页的生死博弈|得物技术christine-rr2 天前
linux常用命令(4)——压缩命令可涵不会debug2 天前
【IoTDB】时序数据库选型指南:工业大数据场景下的技术突围