当前位置: 移动技术网 > IT编程>数据库>Redis > 缓存雪崩,缓存穿透

缓存雪崩,缓存穿透

2020年07月14日  | 移动技术网IT编程  | 我要评论

缓存雪崩

 含义:

redis中大量的热点数据,同时过期了(失效了)。是因为每个key都设置了相同的过去时间expire。如果这个时候并发访问量特别大,所有的请求都会落到数据库层面,给db造成特别大的压力。

解决方式:

  1. 设置过期时间的时候   增加一个  random随机数
  2. 如果热点数据不会变化,可以不设置过期时间,也就是说永远不会去db请求
  3. 预更新(定时扫描即将过期的数据 )
  4. 。。。

缓存穿透

 含义:

查询一个数据,发现redis缓存没有命中,于是向持久层数据库查询,发现也没有,说明本次查询失败。当用户很多的时候,缓存都没有命中,于是都去请求了持久层数据库。这会给持久层数据库造成很大的压力,这时候就相当于出现了缓存穿透

解决方式:

  • 1.布隆过滤器 

解决在海量元素中快速判断一个元素是否存在。例如100亿随机数无序,不定长,不重复,判断34432这个数是否在这100亿个随机数中存在。虽然会有误差率,但是一般准确率会打到97% 左右,大大减少了穿透的次数。

  • 特点
  1. 如果布隆过滤器判断元素在集合中存在,不一定存在(因为会发生hash碰撞,得到的结果会有误差
  2. 如果布隆过滤器判断元素在集合中不存在,一定不存在
  3. 如果元素实际存在,布隆过滤器判断一定存在
  4. 如果元素实际不存在,布隆过滤器判断可能存在
  • 2.没有请求到数据也要添加到redis中,设置为null,并且设置过期时间保证数据一致性

本文地址:https://blog.csdn.net/as875784622/article/details/107312264

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网