缓存雪崩、缓存穿透、缓存预热、缓存热备

缓存雪崩

当缓存处于单点情况下,一旦缓存服务器崩溃,所有的请求都会落到数据库,此时,如果由于访问量过大则会导致数据库宕机,进而导致整个网站不可用,这种缓存故障就是俗称的缓存雪崩。

解决方案:解决缓存雪崩故障,就得解决单点问题,提高缓存高可用性,建立分布式的高可用系统,一台缓存服务器挂了,另一台可以继续工作,更不能影响其他的缓存系统。

缓存穿透

如果某个key对应的数据不存在,而又未对该key做缓存,所以每次请求都会穿透缓存直接到数据库进行查询,并发量高的情况下进而导致数据库直接宕机,这就是缓存穿透。

解决方案:解决缓存穿透,如果做了缓存就要把null值或者空列表也要缓存起来。如果恶意攻击一个不存在的key,在控制层做频率限制也是必须的,或者使用布隆过滤器。

缓存预热

新的缓存系统没有任何缓存数据,在缓存重建数据的过程中,系统性能和数据库负载都不太好,所以最好在系统上线之前就把要缓存的热点数据加载到缓存中,这种缓存预热手段就是缓存预热。

缓存热备

缓存热备即当一台服务器不可用时实时切换到备用缓存服务器,不影响缓存使用。集群模式下,每个主节点都会有一个或多个节点来当备用,一旦主节点挂掉,从节点立即充当主节点使用。


猜你喜欢

转载自blog.csdn.net/weixin_42294335/article/details/80697662