Redis缓存雪崩、击穿、穿透
学习自大佬:https://blog.csdn.net/qq_35190492/article/details/102889333
https://www.cnblogs.com/yoishion/p/10791501.html
自己之前的博客:Redis基础
一、雪崩
1、 什么是雪崩?
一秒5000个请求来访问缓存中的key值,这时发生了Redis的全盘崩溃或者访问的key值同一时间全部过期失效,这时一瞬间的请求就会直接去查询数据库了,这么大量的请求会占用大量的cpu和内存,会引发数据库的崩溃或重启,就算重启后也会被新的请求再次冲垮,因此会影响所有涉及数据库的服务大范围崩溃,因此称之为雪崩。
2、解决方案?
- Redis建立高可用,主从+哨兵,集群部署,避免Redis全面崩盘(后面会补详细高可用说明 TODO)
- 本地ehcache缓存+hystrix 限流&降级,避免数据库被击垮(ehcache是啥?hystrix又是啥?)
- 数据过期时间设置永久不过期,有更新操作就更新缓存就好了(缺点消耗大量的内存,但是对大公司来说 内存算啥??保证效率就可以了)
- 数据