Redis常见问题-缓存击穿、缓存穿透、雪崩(白中白简单介绍版本)

目录

 缓存穿透理解

解决方案

缓存击穿

解决方案

击穿和穿透的区别

缓存雪崩

解决方案


 

 缓存穿透理解

1、首先出现缓存穿透的根本是因为应用服务器压力变大了:当客户端传来巨多请求时,首先先经过redis,看缓存中有没有结果,如果没有就会去数据库进行访问,然而这巨多请求绝大数在缓存中都没有(也就是redis命中率很低很低),所以压力直接给到数据库,导致服务器崩溃;

2、另外一种可能就是别人故意发送恶意请求(也就是那些非正常请求),当数量到达一定程度,一直访问数据库,最终服务器压力太大(疯狂执行数据库语句一直找不到一直查)从而导致崩溃,原理也和上述一样,redis中查询不到;

解决方案

 还可以设置黑名单,将那些访问无效数据多次的用户加入黑名单,进行拦截;


缓存击穿

 出现原因:

1、数据库压力瞬间增大

2、redis正常运行并且没有出现大量key过期

当redis某个key过期了(热门key),然后大量访问这个key——>触发缓存击穿

解决方案

 

2、实时调整:现场看那些热点key升高,我们就调整这个key的过期时长

3、使用锁,不过效率很低;

击穿和穿透的区别

击穿:是某些热频key过期了,然后就只能一直访问数据库,造成压力过大,服务器崩溃

穿透:大量无效访问,缓存中没有,一直访问数据库,导致压力过大,服务器崩溃 


缓存雪崩

 出现情况:

在极短时间内,大量key集中过期

解决方案

 3、设置提前值,当到达提前值时,就告诉缓存要过期了,从而重新更新key的缓存

 4、将key的缓存分散开——>从而导致不会一下子全部过期(可用随机值)


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Fairy要carry

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值