redis缓存雪崩,缓存击穿,缓存穿透

薄洪涛1年前JAVA7337

image.png

缓存雪崩

同一时间大量redis缓存数据失效,造成大量请求涌入数据库,数据库压力增大崩掉

解决方案
  1. 缓存过期时间加随机值

  2. 增加过期表示,缓存过期后,自动更新缓存

缓存穿透

缓存和数据库中都没有的数据,每次查询都会透过缓存直接查库,最后返回空,疯狂查询这条不存在的数据时,数据库压力增大崩掉

解决方案
  1. 缓存空对象,数据库查询不存在,在redis中缓存结果

  2. 布隆过滤器,过滤掉肯定不存在的结果

缓存击穿

缓存中没有但是数据库中有的数据(缓存中某个热点过期,数据还未载入缓存),大量请求涌入查询此热点,引起数据库压力增大崩掉

解决方案
  1. 热点永不过期

  2. 加互斥锁

标签: redis

相关文章

redis中HyperLogLog基数统计

简介Redis 在 2.8.9 版本添加了 HyperLogLog 结构。Redis HyperLogLog 是用来做基数统计的算法,HyperLogLog 的优点是,在输入元素的数量或者体积非常非常...

redis查找附近的人

Redis GEO 主要用于存储地理位置信息,并对存储的信息进行操作,该功能在 Redis 3.2 版本新增。Redis GEO 操作方法有:geoadd:添加地理位置的坐标。geopos:获取地理位...

redis中的事务处理

redis事务单个 Redis 命令的执行是原子性的,但 Redis 没有在事务上增加任何维持原子性的机制,所以 Redis 事务的执行并不是原子性的。事务可以理解为一个打包的批量执行脚本,但批量指令...

评论列表

访客
2023-11-12 23:28:48

好久没更了....

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。