缓存雪崩、穿透、一致性问题

简介:缓存机制能避免请求过多的直接与数据库操作,从而造成系统瓶颈,极大的提升了用户体验和系统稳定性。虽然给系统带来了一定质的提升,但是也带来一些问题。

1. 缓存一致性

  A. 概念:当数据时效性要求很高时,需要保证缓存中的数据与数据库中的保持一致,而且需要保证缓存节点和副本中的数据也保持一致,不能出现差异的现象

2. 缓存穿透

  A. 概念:在高并发场景下,如果某一个key被高并发访问,没有被命中,处于对容错性考虑,会尝试去从后端数据库中获取,从而导致大量的请求达到数据库,而当key对应的数据本身就是空的情况下,这就导致数据库中并发的执行了很多不必要的查询操作,从而导致巨大冲击和压力;

  B. 解决方式:

    I. 缓存空对象:如果是集合就缓存一个空集合,而非null,如果缓存对象,就用字段标识来区分,将失效时间设置短一些。

    II. 过滤:

3. 缓存雪崩

  A. 概念:指由于缓存的原因,如缓存服务器故障、key失效时间相同等,导致大量请求达到后端数据库,从而导致数据库崩溃,进而引发系统崩溃;

  B. 解决方式:

    I. 若因key失效时间相同,就让key失效时间错开;

    II. 若因缓存服务器故障,建立分布式高可用的缓存系统,即缓存预备;

猜你喜欢

转载自www.cnblogs.com/ruhuanxingyun/p/12209663.html