理解redis缓存雪崩、缓存穿透、缓存击穿

本文探讨了缓存系统中常见的三大问题:缓存雪崩、缓存穿透和缓存击穿,分析了这些问题产生的原因,并提出了有效的解决方案,包括设置过期时间的随机因子、参数校验和使用分布式锁。
1. 缓存雪崩

指大批缓存的key同时出现过期,导致这一瞬间db承受大量数据库查询压力。

解决方案:设置过期时间的时候添加一个随机因子,避免大量的key使用同样的过期时间。

2.缓存穿透

查询未被缓存的数据。比如查询一个不存在的主键id,由于数据库中查询不到数据,数据不会被缓存。从而导致每次查询,压力都到达了db层。

解决方案:参数校验,对于无效id直接返回孔;允许缓存null。

3.缓存击穿

有时候系统中缓存的某些热点key承受了大量的请求,当它们过期的时候,瞬间大量的并发请求就会到达db层。

解决方案:热点key永不过期; 对热点数据的db请求加分布式锁。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值