1,缓存穿透
当查询缓存是无此key对应的值,后去数据库查询,数据库有值时存入缓存无值时返回无此值,但再一次查此key是还是一样的结果,但大量的访问此key是对数据库会造成更大的压力
解决办法
当查询缓存是无此而已的值时,查询数据库,有值时存入缓存,物质是同样存入一个null 并设置较短的有效时间,但再次查询此key时,查询结果的结果为null是展示无数据
2,缓存雪崩
定义
在缓存服务器重启或大规模的缓存时间到期导致请求到范文数据库查询。使mysql压力太大奔溃
雪崩后解决方法
1,雪崩后关闭外网服务,对数据库 预热缓存 在开启外网服务
预防雪崩
1,将缓存的key的到期时间设置为不同个的时间,避免同一个时间段大规模的缓存失效
2,将缓存备份
3,缓存预热
将常用的缓存提前存入缓存中
4,原子缓存
将缓存变成一个最小的理论,当其他的地方用的是后调用只一个就可以,这样就可以省出一些缓存空间
相当于变相的将缓存文件增加复用性
6,分页缓存
点击页码缓存中查询若无值去数据库查存入缓存并生成一个特殊的key(带页码) ,再次点击页码时根据页码查询瓷业的key名。
7,查询缓存