-
缓存预热
- 缓存预热是什么
- 缓存预热就是系统上线后,提前将相关的缓存数据直接加载到缓存系统。避免在用户请求的时候,先查询数据库,然后再将数据缓存的问题!用户直接查询事先被预热的缓存数据!
- 解决方案
- 使用 @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
相关推荐
了一li1 小时前
Qt中的QProcess与Boost.Interprocess:实现多进程编程码农君莫笑2 小时前
信管通低代码信息管理系统应用平台别致的影分身2 小时前
使用C语言连接MySQL京东零售技术4 小时前
“慢”增长时代的企业数据体系建设:超越数据中台sdaxue.com4 小时前
帝国CMS:如何去掉帝国CMS登录界面的认证码登录o(╥﹏╥)5 小时前
linux(ubuntu )卡死怎么强制重启海海不掉头发5 小时前
苍穹外卖-day05redis 缓存的学习阿里嘎多学长5 小时前
docker怎么部署高斯数据库Yuan_o_5 小时前
Linux 基本使用和程序部署Sunyanhui15 小时前
牛客网 SQL36查找后排序