1.缓存雪崩:缓存同一时间大面积失效,导致大量的请求都落在了数据库上,造成数据库承受压力增大以致最后的雪崩
解决办法:事前:保证redis集群的高可用,发现机器宕机后能够尽快补上,选择合适的内存淘汰机制,淘汰掉过期的数据
事中:本地ehcache缓存和限流机制,保证mysql运行
事后:利用redis持久化机制尽快恢复数据
2.缓存穿透:大量的查询缓存中不存在的数据,导致请求最后都落在了数据库上,以至于数据库短时间承受压力大而崩掉
解决办法:查询的内容不存在时,redis仍然保存这个空的结果,但它的过期时间很短,保证请求不全都落在数据库上