目录

1. 缓存雪崩2. 缓存穿透3. 缓存击穿

1. 缓存雪崩

redis服务器挂掉导致请求大量涌至数据库;

1. 缓存雪崩是指,由于缓存层承载着大量请求,有效的保护了存储层,但是如果缓存层由于某些原因整体不能提供服务2. 于是所有的请求都会达到存储层,存储层的调用量会暴增,造成存储层也会挂掉的情况。

解决方法(哨兵模式)

1. 保证缓存层服务高可用性:比如 Redis Sentinel 和 Redis Cluster 都实现了高可用2. 依赖隔离组件为后端限流并降级:比如对某个key只允许一个线程查询数据和写缓存,其他线程等待。

2. 缓存穿透

大量缓存中不存在的请求key访问直接落到数据库,一般是恶意攻击;

1. 缓存穿透是指查询一个一定不存在的数据,由于缓存不命中,接着查询数据库也无法查询出结果,
2. 虽然也不会写入到缓存中,但是这将会导致每个查询都会去请求数据库,造成缓存穿透;

解决方法(布隆过滤)

对所有可能查询的参数以hash形式存储,在控制层先进行校验,不符合则丢弃,从而避免了对底层存储系统的查询压力;

3. 缓存击穿

热点key在请求高峰失效,瞬间大量请求落到数据库;

1. 缓存击穿,就是说某个 key 非常热点,访问非常频繁,处于集中式高并发访问的情况2. 当这个 key 在失效的瞬间,大量的请求就击穿了缓存,直接请求数据库,就像是在一道屏障上凿开了一个洞。

解决方法

1. 解决方式也很简单,可以将热点数据设置为永远不过期;2. 或者基于 redis or zookeeper 实现互斥锁,等待第一个请求构建完缓存之后,再释放锁,进而其它请求才能通过该 key 访问数据。

Redis 雪崩,穿透,击穿相关推荐

  1. 【redis】缓存预热雪崩穿透击穿

    [redis]缓存预热雪崩穿透击穿(上) 文章目录 [redis]缓存预热雪崩穿透击穿(上) 前言 一.面试题 二.缓存预热 三.缓存雪崩 发生原因 预防+解决 高可用: 多缓存结合: 人民币玩家 四 ...

  2. Redis 5.0.8+常见面试题(单线程还是多线程、先更新缓存还是数据库、雪崩穿透击穿解决办法...)

    Redis 6.0 保姆级教程(含微服务案例与完整面试题):https://www.yuque.com/yuxuandmbjz/redis Redis是单线程还是多线程 ?为什么这么设计 ? Redi ...

  3. 老生常谈的 Redis 雪崩、击穿、穿透、预热、降级一次全安排

    △Hollis, 一个对Coding有着独特追求的人△ 这是Hollis的第 348 篇原创分享 作者 l zyz1992 来源 l Hollis(ID:hollischuang) 关于 Redis ...

  4. Java面试核心知识:Redis 雪崩、击穿、穿透、预热、降级,一文带你全部学会

    文章目录 Java面试核心知识点 Spring原理及应用 spring CIoud原理及应用 Netty网络编程原理及应用 Zookeeper原理及应用 kafka原理及应用 Hadoop原理及应用 ...

  5. Redis缓存穿透击穿雪崩

    目录 1.缓存穿透 2.缓存击穿 3.缓存雪崩 1.缓存穿透 概述: 缓存穿透的概念很简单,用户想要査询一个数据,发现redis内存数据库没有,也就是缓存没有命中,于是向持久层数据库査询.发现也数据库 ...

  6. Redis缓存穿透击穿和雪崩(八)

    1. 缓存穿透 1.1. 定义 如果用户的请求Redis缓存没有,mysql持久层也没有这个数据,于是本地查询失败.当用户请求很多(或者恶意攻击)且都是这种缓存和持久层都没有命中的情况时,大量的请求持 ...

  7. Redis缓存/穿透/击穿/雪崩

    目录 1 缓存穿透 1.1 问题描述 1.2 产生原因 1.3 解决方案 2 缓存击穿 2.1 问题描述 2.2 解决方案 3 缓存雪崩 3.1 问题描述 3.2 解决方案: 1 缓存穿透 1.1 问 ...

  8. 一文搞懂Redis缓存穿透/击穿/雪崩

    缓存穿透 问题描述 缓存穿透是指查询一个一定不存在的数据,由于缓存时不命中的,则需要从数据库中查询.查不到数据则不写入缓存,这将导致这个不存在的数据每次请求都要到数据库中去查询,进而增大了数据库的压力 ...

  9. 关于缓存雪崩\穿透\击穿等一些问题

    前言 设计一个缓存系统,不得不要考虑的问题就是:缓存穿透.缓存击穿与失效时的雪崩效应. 缓存穿透 缓存穿透是指查询一个一定不存在的数据,由于缓存是不命中时被动写的,并且出于容错考虑,如果从存储层查不到 ...

  10. 缓存 雪崩 穿透 击穿

    缓存雪崩 原因:缓存雪崩是并发量过大带来的一系列的雪崩效应.大量的请求涌入缓存导致缓存无法处理挂掉,接着大量的请求会涌入数据库导致数据库挂掉. 分析:处理此问题的关键就是避免并发量大的时候缓存不要挂掉 ...

最新文章

  1. 什么是优秀管理者的第一课?【如何搞垮一个企业】
  2. 网络服务器分为文件服务器通信服务器和,近代中国落后、贫困的根本原因是()...
  3. 火热报名 |【 6月26日上海站】VCEC沙龙第5期:智能化技术在质量场景落地和实践...
  4. 教你如何在STM32中使用DSP指令
  5. iterator 怎么使用甀_Iterator的使用
  6. chrome浏览器隐藏地址栏_谷歌Chrome浏览器正在开发新功能:可直接复制粘贴隐藏密码...
  7. Mp3Play.ocx控件让音乐之声响起来
  8. 交互式反汇编器专业版IDA Pro的一点介绍
  9. 自定义条件查询_跟我学shardingjdbc之自定义分库分表策略-复合分片算法自定义实现...
  10. java代码禁止反编译_Java代码防止反编译
  11. APP通用测试用例编写
  12. DFS----深度优先搜索与记忆化数组例题分析
  13. 华为是怎样研发的(1)——概述
  14. 腾讯AI Lab招聘实习生(内推)
  15. 单点登录系统(SSO)的开发思路
  16. 达人评测 i3 12100F和i5 10400f选哪个
  17. FPGA和CPLD的区别
  18. 数据结构和算法之暴力递归到动态规划01-绝顶聪明纸牌问题
  19. 【快速入门】YOLOv5目标检测算法
  20. Google教我如何定制自己的View

热门文章

  1. 【Homography Estimation】《Deep Image Homography Estimation》
  2. Topaz Video Enhance AI(ai视频画质增强软件)官方正式版V2.2.0 | AI视频放大软件下载 | 视频画质怎么变清晰?
  3. 各种JS模板引擎对比数据(高性能JavaScript模板引擎)
  4. JAVA语言,YUV-I420格式转RGB格式,NV21格式转RGB格式的一种中间过程
  5. 聊天app开发——如何开发聊天app
  6. linux windows拷贝文件,把linux上的文件拷贝到windows下
  7. 项目经理,你真的是资源不足吗?
  8. 改编码格式_CAD多行文字编码讲解
  9. Quartz定时任务动态数据库配置
  10. windows命令修改IP地址