redis三种异常

[复制链接]
发表于 2024-11-16 21:58:22 | 显示全部楼层 |阅读模式

redis 击穿

redis 击穿 key过期,大量请求这个key导致失效

  1. 互斥锁 分布式锁来保证同一key 锁住后写入redis缓存再释放锁继续后面请求

redis 雪崩

redis 雪崩 很短时间大量key同时失效

  1. 热点数据永远不过期,设置过期时间不同或随机
  2. 服务器当了,雪崩,做redis集群

redis 穿透

redis穿透 请求的在redis中没有,数据库中也没有则每次都会直接请求到了数据库 消耗数据库资源

  1. 缓存没有,数据库也没有 在redis 里面放一个空值 。
  2. bulong过滤器 匹配到才可能有,拦住了一定没有。

请求先查redis ,没有查到加锁锁住,查数据库,有放redis缓存,没有redis放空值 过期时间要放随机的过期时间,防止redis雪崩,解锁返回数据

实战经验

设备数量远远超过我们的,他那边把100个燃气表丢到mq ,从mq接到数据,短时间mq消息特别多,每次消息后先判断是否存在,有不管,没有更新掉 使用布隆过滤器 通过了 查不到一定不在我们里面,基于redis 高版本的才能支持

使用es 丢到 es里就算消费完了 es 是非关系型数据库天生就支持大量数据存储

GMT+8, 2025-4-20 17:35 , Processed in 0.069994 second(s), 35 queries Archiver|手机版|小黑屋|Attic ( 京ICP备2020048627号 )

快速回复 返回顶部 返回列表