-
缓存预热
- 缓存预热是什么
- 缓存预热就是系统上线后,提前将相关的缓存数据直接加载到缓存系统。避免在用户请求的时候,先查询数据库,然后再将数据缓存的问题!用户直接查询事先被预热的缓存数据!
- 解决方案
- 使用 @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
相关推荐
橙子家17 分钟前
OSS 文件上传的几个风险点和解决方案2601_962066492 小时前
【Sql Server】Update中的From语句,以及常见更新操作方式愤怒的苹果ext2 小时前
MySQL Shell备份恢复数据库数字新视界4 小时前
DCIM管理系统的技术架构与部署模式详解何以解忧,唯有..4 小时前
Pydantic 介绍与使用:Python 数据校验的现代方案小白勇闯网安圈5 小时前
String、Hash、List、Set 四大数据结构与通用命令云存储小天使5 小时前
训练效率提升50%以上:GooseFS 写缓存及其在具身智能数据处理中的应用这个DBA有点耶6 小时前
数据库容灾进入“秒级时代”:同城双活架构原理、关键技术选型与落地实践2601_962074816 小时前
大数据-264 实时数仓 - Canal MySQL的binlog研究 存储目录 变动信息 配置MySQL2601_962071176 小时前
八. Spring Boot2 整合连接 Redis(超详细剖析)