Redis总结(6)---Redis 缓存问题

本文详细介绍了Redis缓存中的常见问题,如缓存穿透、雪崩、击穿及数据不一致,并提供了相应的解决方案。缓存穿透可通过布隆过滤器预先过滤;缓存雪崩通过分散key的失效时间和设置二级缓存避免;缓存击穿使用分布式锁或不设置过期时间;数据不一致则采取延时双删策略保证最终一致性。同时,文章还讨论了数据并发竞争、Hot key管理和Big Key的处理方法。
摘要由CSDN通过智能技术生成

缓存穿透

在高并发情况下,查询key不存在的数据,会穿过缓存查询数据库,导致数据库压力过大而宕机
解决方法:
使用布隆过滤器,在缓存前加一个布隆过滤器,在查询的时候先去布隆过滤器查询key是否存在,如果不存在就直接返回,存在再查询缓存和DB。
在这里插入图片描述

缓存雪崩

当缓存服务器重启或者大量缓存集中在某一个时间段失效,这样在失效的时候,也会给后端系统带来很大的压力。
突然间大量的key失效或者redis重启,大量访问数据库,数据库崩溃
解决方案:

  1. key失效期分散开,不同的key设置不同的有效期
  2. 设置二级缓存(数据不一定一致)
  3. 高可用性(脏读)

缓存击穿

对于某些设置了过期时间的key,如果这些key可能会在某些事件点被超高并发地访问,是一种非常热点的数据
缓存在某个时间点过期的时候,恰好在这个时间点对这个key有大量的并发请求过来,这些请求发现缓存过期一般都会从后端DB加载数据并回到魂村,这个时候大并发请求可能会把后端DB压垮
解决方案:

  1. 用分布式锁控制访问的线程
  2. 不设置超时时间,可能会有脏读问题,无法及时更新

数据不一致

缓存和DB的数据不一致,强一致性很

  • 5
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 14
    评论
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值