Redis缓存穿透和雪崩

缓存穿透

在实际中,Redis没有起到缓存的作用,请求还是到了数据库,对数据库造成了很大的压力。比如说:用户在请求一条数据,这个数据在数据库中不存在,那么缓存中也不会存在,用户在发起很多次请求的时候,都会绕过Redis,而直接访问数据库,这就是缓存穿透。
处理方式:
-1:将查询到空的数据也放置到缓存中,设置一个过期时间。
-2:采用布隆过滤器

布隆过滤器

布隆过滤器(Bloom Filter)是1970年由布隆提出的。它实际上是一个很长的二进制向量和一系列随机映射函数。布隆过滤器可以用于检索一个元素是否在一个集合中。它的优点是空间效率和查询时间都比一般的算法要好的多,缺点是有一定的误识别率和删除困难。

缓存+布隆过滤器:布隆过滤器将缓存的key,通过随机映射函数,映射到二进制向量中。将二进制中0改为1.二进制同一个位置,可能会有多个映射,这样在查询的,就会造成一定的误识别率。
布隆过滤器可以判断值一定不存在,但是不能判断一定存在(因为误识别率)

缓存雪崩

在生产环境中,某一个时期有大量地key过期,恰好这个时候有大量地请求过来,这些请求就都会直接打在数据库上,造成数据库的很大的压力,甚至宕机。这就是缓存雪崩。
处理方式:
-1:key不过期
-2:错开key过期时间
-3:多缓存并用,比如Redis+
-4:采购第三方的Redis

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值