首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Redis中的缓存穿透、雪崩、击穿的原因以及解决方案

缓存雪崩

缓存雪崩指的是,大量的应用无法在 Redis 缓存中处理,然后大量请求发送到了数据库,导致数据库的压力激增,甚至可能导致数据库崩溃,从而导致整个系统崩溃,引发雪崩一样的连锁效应

解决方案:进行预先的热门词汇的设置,进行key时长的调整

实时调整,监控哪些数据是热门数据,实时的调整key的过期时长

使用锁机制

缓存穿透

缓存穿透指的是,数据既不在 Redis 中,也不在数据库中。每次请求 Redis 发现没有对应的key之后,再去请求数据库,发现数据库也没有。那么这时,Redis就相当于一个摆设,没有具体的作用了。如果有人恶意攻击系统,故意使用空值或者其他不存在的值进行频繁请求,那么也会对数据库造成比较大的压力

解决方案:对空值进行缓存,设置白名单,使用布隆过滤器

缓存击穿

缓存击穿是指,针对某个热点数据,突然在缓存中失效,然后这些请求到热点数据的请求会都请求到数据库。缓存击穿一般是热点 key 在 Redis 中过期了导致的。最直接的方法就是,对于热点key,就不设置过期时间

解决方案:进行预先的热门词汇的设置,进行key时长的调整

实时调整,监控哪些数据是热门数据,实时的调整key的过期时长

使用锁机制。

根本原因:大量的高并发的请求打在Redis上,但是发现Redis中并没有请求的数据,redis的命令率降低,所以这些请求就只能直接打在DB(数据库服务器)上,在大量的高并发的请求下就会导致DB直接卡死、宕机。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20230317A05UBF00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

相关快讯

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券