缓存穿透
特点: 用户高并发环境下,访问数据库中根本不存在的数据.(缓存和数据库中都没有的数据)
影响:由于用户高并发访问,则数据库可能存在宕机的风险.
解决方案:1).API网关
2).限定IP的访问次数
缓存击穿
特点:只影响一段时间(时间较短)
影响:由于用户高并发的访问. 访问的数据刚开始有缓存,但是由于特殊原有 导致缓存(少量)失效 ,用户的请求直接访问数据库 (缓存中没有但数据库中有的数据)引起数据库压力瞬间增大
解决方案:
1.让业务查询多个redis并且保证数据不在同一时间删除即可
2.设置热点数据永不过期。
缓存雪崩
缓存雪崩是指缓存中有大量的数据在同一时间超时(删除),而查询的数据量庞大,引起数据库压力过大甚至宕机。和缓存击穿不同的是,缓存击穿指并发查询同一条数据,缓存雪崩是不同数据都过期了,很多数据都查不到从而查询数据库。
解决方案:
1.缓存数据的过期时间设置为随机,防止同一时间大量数据过期现象的发生。
2.如果缓存数据库是分布式部署,将热点数据均匀分布在不同搞得缓存数据库中。
3.设置热点数据永远不过期。