1.什么是缓存雪崩
- 前提:为节约内存,Redis一般会做定期清除操作
1.当查询 key=fisher的值,此时Redis没有数据;
2.如果有5000个用户并发来查询key=fisher,全到Mysql里去查, Mysql会挂掉。
解决方案如下: A.设置热点数据永远不过期。 B.加互斥锁
2.什么是缓存穿透
- 前提:黑客模拟一个不存在的订单号xxxx
1.Redis中无此值
2.Mysql中也无此值,但一直被查询
解决方案:
1.对订单表所有数据查询出来放到布隆过滤器,经过布隆过滤器处理的数据很小(只存0或1)
2.每次查订单表前,先到过滤器里查询当前订单号状态是0还是1,0的话代表数据库没有数据