Redis面试题-缓存穿透,缓存击穿,缓存雪崩

1、穿透: 两边都不存在(皇帝的新装) (黑名单) (布隆过滤器)

解释:请求的数据既不在Redis中也不在数据库中,这时我们创建一个黑名单(hash结构)来存储该数据,下次再有类似的请求进来时,先验证是否存在黑名单中,如果存在就不会请求数据库,就成功缓解了数据库的压力。

布隆过滤器:思想:不存在一定不存在,存在可能存在。

为什么我们不用:底层采用redis的bitMap进行存储,经过三次hash后将我们的数据进行存储。我们将数据一次存入到布隆过滤器中,但是我们的数据不是一直不变的,我们在删除的时候会出现误判率。底层时bitMap进行存储的,我们可能多个数据公用一个二进制位,我们删除的时候会造成误删。

2、击穿:一个热点的key失效了,这时大量的并发请求直接到达数据库. (提前预热

解释:提前将需要访问的数据信息先存入Redis数据库中

我们主要有一个主题表和明细表,我们xxl-job每隔10分钟访问主题表,如果主题表中的预发布时间与当前时间之差小于10分钟我们就进行同步,如果不满足间隔10分钟再次扫描进行同步。

3、雪崩:大量key同时失效 (避免大量的key同一时间失效,错峰

解释:设置不同的过期时间,比如23小时+random*3600 进行设置。

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值