1.什么是缓存雪崩

  • 前提:为节约内存,Redis一般会做定期清除操作
    1.当查询 key=fisher的值,此时Redis没有数据;
    2.如果有5000个用户并发来查询key=fisher,全到Mysql里去查, Mysql会挂掉。
    Redis 1:缓存雪崩与穿透
    解决方案如下: A.设置热点数据永远不过期。 B.加互斥锁

2.什么是缓存穿透

  • 前提:黑客模拟一个不存在的订单号xxxx
    1.Redis中无此值
    2.Mysql中也无此值,但一直被查询
    Redis 1:缓存雪崩与穿透
    解决方案:
    1.对订单表所有数据查询出来放到布隆过滤器,经过布隆过滤器处理的数据很小(只存0或1)
    2.每次查订单表前,先到过滤器里查询当前订单号状态是0还是1,0的话代表数据库没有数据

相关文章: