缓存雪崩
(1)什么是缓存雪崩
缓存雪崩就是存储在缓存里面的大量数据在同一个时刻全部过期,原本缓存组件能够扛住大部分流量,全部请求到了数据库,从而导致数据库压力增加,造成数据库服务器的崩溃一种现象。
(2)导致缓存雪崩的原因
- 中间件宕机(可以对缓存中间件做高可用来避免)
- 缓存中大部分key都设置了相同的过期时间(可以在失效时间里面去增加1-5分钟的随机值,避免同时失效的问题)
缓存穿透
(1)什么缓存穿透
缓存穿透表示段时间内有大量的不存在key请求到应用程序里面,而这些不存在key,在缓存里面又找不到,从而导致全部的请求,全部穿透到了数据库,造成数据库压力增加
(2)造成缓存穿透的核心问题
缓存穿透的核心问题针对缓存的一种攻击行为,正常业务里面,即便是出现这样一个不存在key的情况,由于缓存的不断预热影响也不会很大,而攻击行为呢,就需要去具备时间的持续性,而只有key确定在数据库里面不存在的情况下,才能达到这样一个目的
(3)怎么解决缓存穿透
把无效的key保存到redis里面,并且设置一个特殊的值,比如像“null”字符串,下次再来访问的时候