缓存雪崩 和 缓存穿透 问题及解决方案----->(浅谈)

语言: CN / TW / HK

「深度学习福利」大神带你进阶工程师,立即查看>>>

缓存雪崩: 缓存同一时间大面积的失败,所以后面的请求都会落到数据库上,造成数据库短时间内承受大量请求而崩掉

解决方案: 事前:尽量保证整个redis集群的高可用性,发现机器宕机尽快补上

                事中:本地ehcache缓存+hystrix限流&降级,避免MySQL崩掉

                事后:利用redis持久化机制保存的数据尽快恢复缓存

缓存穿透: 简答点说就是大量请求的Key根本不存在于缓存中,导致请求直接到了数据库上,根本没有经过缓存这一次层.

解决方案: 最基本的就是首先做好参数校验,一些不合法的参数请求直接抛出异常信息返回给客户端.比如查询的数据库id不能小于0,传入的邮箱格式不对的时候直接返回错误消息给客户端等等.

分享到: