Redis缓存穿透、缓存雪崩、缓存击穿

本文探讨了Redis缓存中的三个常见问题:缓存穿透(查询不存在数据)、缓存雪崩(大量缓存同时失效)和缓存击穿(热点key失效时高并发)。提供了针对这些问题的解决方案,如预设空对象缓存和使用布隆过滤器等。
摘要由CSDN通过智能技术生成

Redis缓存穿透、缓存雪崩、缓存击穿

1、缓存穿透

        指查询一个一定不存在的数据。由于缓存命不中时会去查询数据库,查不到数据则不写入缓存,这将导致这个不存在的数据每次请求都要到数据库去查询,造成缓存穿透。

        解决方案:

                1.1 将空对象也缓存起来,并给它设置一个很短的过期时间,最长不超过5分钟。

                1.2 采用布隆过滤器,将所有可能存在的数据哈希到一个足够大的bitmap中,一个一定不存在的数据会被这个bitmap拦截掉,从而避免了对底层存储系统的查询压力。

2、缓存雪崩

        如果缓存集中在一段时间内失效,发生大量的缓存穿透,所有的查询都落在数据库上,就会造成缓存雪崩。

        解决方案:尽量让失效的时间点不分布在同一个时间点。

3、缓存击穿

        是指一个key非常热点,在不停的扛着大并发,当这个key在失效的瞬间,持续的大并发就穿破缓存,直接请求数据库,就像在一个屏障上凿开了一个洞。

        解决方案:可以设置key永不过期。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值