这三种的区别:
雪崩关键词是同一时间大批量数据失效
穿透关键字是非正常数据请求
击穿关键词是并发查询同一数据
缓存雪崩:大量缓存数据同时间失效,导致用户直接发起大量请求到数据库,产生瓶颈。
举例:双十一时某宝的访问量是非常大的,所以他的基本数据都是放在redis缓存起来,对应redis的一百个key,然后设置了缓存失效时间为三个小时,当购物时间超过这个失效时间时,这个网站的redis就会在一瞬间全部失效,导致所有请求都打在数据库上,造成这个数据库反应不过来然后直接挂掉,无法支持前端数据运行,这个情况就是缓存雪崩(大量redis缓存在同一时间全部失效)
解决方案:
1.(生成随机失效的缓存时间数据)在设置缓存的失效时间时随机初始化他的失效时间,避免所有缓存同一时间全部失效;
2.(让缓存节点分布在不同的物理节点上)redis一般是集群部署,我们可以把这些热点的key放在不同的节点上,让热点缓存平均的分布在不同的redis节点上;
3.(生成不失效的缓存数据)不设置缓存的失效时间,使缓存永不失效;
4.(定时任务更新缓存数据)定时的去刷新缓存,如某缓存写了三个小时的时效,在他三个小时失效之前,再把这个redis缓存重新跑入,然后再设置三小时,