缓存雪崩
含义:
redis中大量的热点数据,同时过期了(失效了)。是因为每个key都设置了相同的过去时间expire。如果这个时候并发访问量特别大,所有的请求都会落到数据库层面,给db造成特别大的压力。
解决方式:
- 设置过期时间的时候 增加一个 random随机数
- 如果热点数据不会变化,可以不设置过期时间,也就是说永远不会去db请求
- 预更新(定时扫描即将过期的数据 )
- 。。。
缓存穿透
含义:
查询一个数据,发现redis缓存没有命中,于是向持久层数据库查询,发现也没有,说明本次查询失败。当用户很多的时候,缓存都没有命中,于是都去请求了持久层数据库。这会给持久层数据库造成很大的压力,这时候就相当于出现了缓存穿透
解决方式:
解决在海量元素中快速判断一个元素是否存在。例如100亿随机数无序,不定长,不重复,判断34432这个数是否在这100亿个随机数中存在。虽然会有误差率,但是一般准确率会打到97% 左右,大大减少了穿透的次数。
- 如果布隆过滤器判断元素在集合中存在,不一定存在(因为会发生hash碰撞,得到的结果会有误差)
- 如果布隆过滤器判断元素在集合中不存在,一定不存在
- 如果元素实际存在,布隆过滤器判断一定存在
- 如果元素实际不存在,布隆过滤器判断可能存在
- 2.没有请求到数据也要添加到redis中,设置为null,并且设置过期时间保证数据一致性
本文地址:https://blog.csdn.net/as875784622/article/details/107312264
如对本文有疑问,
点击进行留言回复!!
相关文章:
-
-
Redis主从模式
Redis有三种集群模式:主从模式、Sentinel模式、Cluster模式主从模式Sentinel模式Clus...
[阅读全文]
-
Zabbix监控
#### 1.zabbix监控日志文件配置[root@localhost ~]# mkdir /scripts/...
[阅读全文]
-
-
-
-
-
分库分表实战问题
1.分库分表中水平拆分和垂直拆分的区别?水平拆分:将表数据拆分到不同的数据数据库中。垂直拆分:把一个大表拆成多个...
[阅读全文]
-
-
聊聊数据同步
一、简述 数据同步,这是一个很宽泛的概念,在互联网或者传统软件公司,一定会遇到数据同步的场景。数据同步一般...
[阅读全文]
-
网友评论