0%

缓存雪崩

什么是缓存雪崩

缓存雪崩可能是因为数据未加载到缓存中,或者缓存同一时间大面积的失效,或者缓存服务器宕机, 从而导致所有请求都去查数据库,导致数据库CPU和内存负载过高,甚至宕机。

解决思路

  1. 针对缓存已经失效的情况,可以采用加锁计数,或者使用合理的队列数量来避免缓存失效时对数据库造成太大的压力。 这种办法虽然能缓解数据库的压力,但是同时又降低了系统的吞吐量。

  2. 分析用户行为,尽量让缓存失效时间分布均匀,可以用来避免缓存在同一时间大面积失效的情况。 也可直接在原有缓存时间上增加一个随机值。

  3. 可以使用主备或集群的方式来应对缓存服务器宕机的问题。但此时需要处理事务问题,如update时可能会读到脏数据。