redis的缓存雪崩,缓存穿透和缓存击穿
缓存雪崩:
由于redis的key大面积同时失效,导致大量的请求直接打在数据库上,数据库承受不了这么大的数据请求,导致数据库崩了。
解决办法:在key的设置时长中加入随机数,让key不会同一时间大面积失效。
缓存穿透:
比如数据库中的id从1开始,但是请求的数据是小于1,缓存中也没有该数据,数据库中没有这数据,而用户不断的请求,导致数据库崩溃。
解决方法:
对用户数据进行校验,对于不符合要求的数据过滤掉。
缓存穿透:
一个热点数据有大量的请求,但是这个key在某一时刻失效,大量请求直接打在数据库上,导致数据库崩溃。
解决方案:将key的有效时长设置为无限长。
转自qq_45916087的文章