Redis中击穿、穿透、雪崩

本文深入探讨了缓存系统中常见的问题——缓存穿透、击穿和雪崩现象,并提供了详细的解决方案。包括使用Redis分布式锁、Bloom过滤器、随机过期时间和前端延时等技术手段,旨在帮助开发者有效应对这些挑战,保障系统的稳定运行。
摘要由CSDN通过智能技术生成

击穿: 当在高并发下,部分key过期失效(LRU,LFU),大量数据击穿redis直接到达DB
解决方法:使用redis分布式锁,如果redis中没有找到这个key,就使用分布式锁控制

redis分布式锁:

  1. setnx 如果不存在,则设置成功,获取锁.
  2. 设置过期时间,防止死锁
  3. 多线程监控,防止因为执行执行超过过期时间

穿透:当大量无效数据穿透redis,直接访问DB,造成数据库压力

解决方案: bloom过滤器筛选,或者针对无效值设置null

雪崩:当大量数据在某一个时间段过期,导致数据直接访问DB

解决方案

  1. 如果是跟时点无关,则可以使用随机过期时间
  2. 如果跟时点有关,则采用分布式锁,以及在前端延时
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值