赞
踩
前言: 前面几个博客从redis在Linux上进行部署到实现集群:主从复制、哨兵模式、cluster集群,但是呢这些集群虽然能够保证redis的高可用,不免也会遇到一些故障就好比击穿,穿透,雪崩等等,这三种都会可能成为我们系统的漏洞下面我简单的讲一下他们三个分别是什么意思。
击穿: 某时间段中击穿指的是客户端向服务器发送单个key的查询请求被高并发访问,缓存失效,请求都到数据库,瞬间压力过重发生击穿。比如请求先到达redis层,查询不到后会向关系型数据库发送请求,这样请求就会直接打到持久层,如果客户端疯狂发送这个请求就可能导致持久层数据库的崩溃,进而影响业务系统的运转。
击穿解决方案:
1、可以将热点数据设置为永远不过期。
2、实现互斥锁,等待第一个请求构建完缓存之后,再释放锁,进而其它请求才能通过该 key 访问数据。
3、使用第三方缓存。
穿透: 穿透指的是持续发送一定不存在的key的请求, 在mysql数据库中没有找到, 在redis中也没有找到,返回web层就会出现穿透。
穿透解决方案:
1、使用布隆过滤器:Redis布隆过滤器
雪崩: redis雪崩指的是某些key值在某个时间段同时失效,比如一批热点数据同时失效,那么这么一批请求可能会同时打到我们的数据库,导致数据库崩溃进而影响系统崩溃。
1、集群:redis 高可用,主从+哨兵,redis cluster,避免全盘崩溃
2、第三方缓存:本地 ehcache 缓存 + hystrix 限流&降级,避免 MySQL 被打死。
3、redis 持久化,一旦重启,自动从磁盘上加载数据,快速恢复缓存数据。
4、 使用限流组件。
【Redis-Series】:
一、Linux生产环境安装部署Redis
二、Redis的两种持久化机制RDB/AOF
三、Redis的主从复制原理以及实现(图文详解)
四、Redis哨兵模式讲解及SpringBoot配置(图文详解)
五、Redis-Cluster集群模式讲解及SpringBoot配置(图文详解)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。