-
缓存预热
- 缓存预热是什么
- 缓存预热就是系统上线后,提前将相关的缓存数据直接加载到缓存系统。避免在用户请求的时候,先查询数据库,然后再将数据缓存的问题!用户直接查询事先被预热的缓存数据!
- 解决方案
- 使用 @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
相关推荐
嘘神秘用19 小时前
布:AI 驱动的 Redis 客户端,更快、更直观东北小狐狸-Hellxz21 小时前
Redis 哨兵搭建+ACL权限控制研究员子楚1 天前
GEO行业发展标准体系白皮书V2.0-第09卷 · 适配篇:硅基主权伦理宪章与行业适配宣言l134062082351 天前
鸿蒙实战:RDB 数据库设计与 DatabaseService山峰哥1 天前
数据库工程与索引策略实战指南谙忆1 天前
图片版权保护工程实战:明水印、盲水印(DCT隐写)、Referer防盗链与签名URL怎么落地KaMeidebaby1 天前
卡梅德生物技术快报|抗体合成:多肽抗体合成工程化方案:Nsp2 保守肽多抗制备与多维度验证xfhuangfu1 天前
19c CDB架构下的数据库启动和停止神道君天下1 天前
填充与积累:积分与面积的可视化爱折腾的小黑牛1 天前
小程序云开发数据模型设计:礼账系统的三表结构