解决 Redis 缓存雪崩以及穿透问题

Posted by liuxu379 on December 4, 2019

缓存雪崩

缓存雪崩,是指缓存内的数据同一时间大量失效,导致请求直接去查询数据库,造成数据库服务器 CPU 或内存负载较高,甚至宕机,影响其他业务。

解决方案
  • 高可用
    • 采用 Redis Cluster 集群。
  • 缓存预热
    • 在系统上线前,可以事先针对热点数据进行缓存,或者定时刷新热点数据的缓存。

缓存穿透

缓存穿透,指同一时间大量请求查询不存在的数据,因为 Reids 中没有该数据,所以请求转向了 Mysql 数据库,给数据库造成压力。

解决方案

如果数据库中没有该值,将返回的空值存入缓存,设置短效的过期时间,建议五分钟内。