缓存雪崩:
缓存雪崩是指大量的请求无法在缓存中处理,从而将请求转移到数据库中,导致数据压力倍增。一个Redis实例可以支持万级别的并发请求,而单个数据库只能支持千级别的并发请求。两者处理请求并发能力相差十倍,数据库会由于压力过大而导致雪崩。
缓存击穿:
缓存击穿是指,针对某个访问缓存非常频繁,无法在缓存中处理,访问该数据的请求一下子都请求数据库,导致数据库压力倍增。
缓存穿透:
缓存穿透是指访问的数据既不在redis缓存中,也不在数据库中,因为数据库也不存在数据,也无法将数据库数据写入缓存中,每次请求都要请求缓存和服务器。不过这样也导致系统性能下降。
缓存穿透会发生如下两种情况:
- 误操作,删除了缓存和数据的数据。
- 恶意攻击: 专门访问数据库中不存在的数据。