Redis进阶——Redis并发问题
redis的并发问题有三种
- 雪崩
- 击穿
- 穿透
雪崩
原因:
- Redis热点数据同时过期,大量请求全部打到mysql,mysql宕机
- 单个Redis服务出现问题或重启
解决方案:
-
问题1:
为热点数据设置随机值,避免热点数据同时过期
-
问题2
配置Redis集群
注:
- 热点数据是指访问量特别大的数据
击穿
原因:
大量并发请求访问Redis同一个数据,此时数据刚从数据库查出来,但还没有向Redis保存,有大量线程向数据库访问,导致Mysql压力过大
解决方案:
上双检索,实现线程同步执行
穿透
原因:
大量数据访问Mysql没有的数据,Redis缓存无法命中,导致数据库压力过大,
解决方案:
- 在Redis保存空对象,并且给空对象设置过期时间
- 使用布隆过滤器筛掉不存在的数据