redis 击穿
redis 击穿 key过期,大量请求这个key导致失效
- 互斥锁 分布式锁来保证同一key 锁住后写入redis缓存再释放锁继续后面请求
redis 雪崩
redis 雪崩 很短时间大量key同时失效
- 热点数据永远不过期,设置过期时间不同或随机
- 服务器当了,雪崩,做redis集群
redis 穿透
redis穿透 请求的在redis中没有,数据库中也没有则每次都会直接请求到了数据库
消耗数据库资源
- 缓存没有,数据库也没有 在redis 里面放一个空值 。
- bulong过滤器 匹配到才可能有,拦住了一定没有。
请求先查redis ,没有查到加锁锁住,查数据库,有放redis缓存,没有redis放空值 过期时间要放随机的过期时间,防止redis雪崩,解锁返回数据
实战经验
设备数量远远超过我们的,他那边把100个燃气表丢到mq ,从mq接到数据,短时间mq消息特别多,每次消息后先判断是否存在,有不管,没有更新掉 使用布隆过滤器 通过了 查不到一定不在我们里面,基于redis 高版本的才能支持
使用es 丢到 es里就算消费完了
es 是非关系型数据库天生就支持大量数据存储 |