提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 一、redis缓存雪崩
  • 二、redis缓存击穿
  • 三、redis缓存穿透

前言

主要是介绍一下redis缓存雪崩、击穿、穿透,以及他们的解决方式。

一、redis缓存雪崩

所谓的redis缓存雪崩指的是:redis中大量key集中过期或者redis服务器宕机,从而导致大量请求从数据库获取数据,导致数据库服务器访问压力过大。
解决方式:
① 若是由于大量key过期所造成的,可以给key的ttl设置一个过期时间
② 若是因为redis服务器宕机所导致的,可以搭建redis集群,保证高可用
③ 可以从请求量层面进行解决,对缓存业务添加限流和服务降级策略
④ 可以添加多级缓存,比如说nginx缓存

二、redis缓存击穿

所谓的redis缓存击穿指的是:热点key的过期,从而导致大量访问热点key的请求访问数据库,从而导致数据库压力过大。
解决方式:热点key通常是我们通过后台进行批量添加的,比如秒杀活动,解决热点key失效,可以重建缓存
① 互斥锁实现:只允许一个线程对redis缓存进行重建,其他线程处于等待状态,可以通过redis当中的setnx实现。缺点是串行化执行,效率低。优点是一致性高。
② 逻辑过期:给需要缓存的数据添加一个逻辑过期字段,通过对逻辑过期字段的判断,判断数据有无过期,如果过期则开启一个线程进行缓存重建,并且返回之前的数据。缺点是数据的一致性低,优点是相应速度快。

三、redis缓存穿透

所谓的redis缓存穿透指的是:redis当中没有数据,数据库当中也没有数据,请求每次都是访问数据库,而数据库有没有数据返回。
解决方式:
① 缓存空值。缺点是有点浪费内存空间,如果这样的请求过多,会导致redis当中有大量这种无用缓存,可以给其设置一个ttl。
② 使用布隆过滤器。布隆过滤器原理是一个二进制的数组,存储的是0或1,在添加元素时进行多次hash运算,得到多个0或1,存储到相应位置。
③ 热点参数的限流降级
④ 进行权限校验
⑤ 做好数据格式的校验

redis缓存雪崩、击穿、穿透相关推荐

  1. redis缓存雪崩、穿透、击穿概念、布隆过滤器小结及解决办法

    判存业务 redis缓存雪崩.穿透.击穿概念及解决办法 什么是 概念: 1.缓存雪崩 对于系统 A,假设每天高峰期每秒 5000 个请求,本来缓存在高峰期可以扛住每秒 4000 个请求,但是缓存机器意 ...

  2. 顶级“Redis学习笔记”,缓存雪崩+击穿+穿透+集群+分布式锁,NB了

    如果你是一位后端工程师,面试时八成会被问到 Redis,特别是那些大型互联网公司,不仅要求面试者能简单使用 Redis,还要深入理解其底层实现原理,具备解决常见问题的能力.可以说,熟练使用 Redis ...

  3. 解决Redis缓存雪崩、穿透、并发、预热、击穿、热点Key等问题

    一.缓存雪崩 数据未加载到缓存中,或者缓存同一时间大面积的失效,从而导致所有请求都去查数据库,导致数据库CPU和内存负载过高,甚至宕机. 比如一个雪崩的简单过程: 1.redis集群大面积故障 2.缓 ...

  4. Redis缓存雪崩、穿透、击穿,布隆过滤器,分布式锁详解

    缓存雪崩 在某一个时间存在大量的缓存key失效 解决办法 1.有效期一直---->给每一个数据加上水机有效期 2.redis挂掉了----->使用redis集群,分摊key的存储 引出re ...

  5. 缓存雪崩 击穿 穿透

    缓存穿透 **缓存穿透是指查询一个一定不存在的数据,由于缓存是不命中时被动写的,并且出于容错考虑,如果从存储层查不到数据则不写入缓存,这将导致这个不存在的数据每次请求都要到存储层去查询,失去了缓存的意 ...

  6. redis的雪崩 击穿 穿透以及解决方案

    雪崩:众多缓存数据同一时间到期导致大量请求同时达到数据库,致使数据库超负荷. 解决方案: 1.数据对时间不敏感:到期时间加一个随机值 2.数据必须在某一时刻到期:客户端请求的时候加个延迟. 击穿:某一 ...

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

    Redis缓存雪崩&缓存击穿&缓存穿透 一 缓存更新策略 二 缓存雪崩 三 缓存击穿 四 缓存穿透 一 缓存更新策略 目前redis缓存更新存在3种主流策略,分别是:内存淘汰.超时剔除 ...

  8. redis缓存雪崩、缓存击穿和缓存穿透还傻傻分不清?看这篇就够了

    前言 关于Redis的高频问题,缓存雪崩.缓存击穿和缓存穿透一定少不了,相信大家在面试中都被问到过类似的问题.为什么这些问题一直热门呢?因为我们在使用Redis缓存时,这些问题都是很容易遇到的.接下来 ...

  9. Redis 缓存雪崩、击穿、穿透

    Redis 缓存雪崩.击穿.穿透 文章目录 Redis 缓存雪崩.击穿.穿透 一.Redis基础 Redis基本数据类型.操作 二.面试相关问题 1.小伙子您好,看你简历上写了你项目里面用到了Redi ...

  10. 面试填坑之Redis无底洞(一、Redis缓存雪崩、击穿、穿透)

    Redis缓存雪崩.击穿.穿透 学习自大佬:https://blog.csdn.net/qq_35190492/article/details/102889333 https://www.cnblog ...

最新文章

  1. 紫书 习题 10-17 UVa 11105 (筛法)
  2. Strategy Analytics:物联网安全令人担忧,成本节约效益也不确定
  3. java培训机构如何选择适合自己的
  4. apache代理模块proxy使用
  5. 如果三国中有5G网,刘关张该这样拜把子!
  6. 欢迎使用人体运动检测与跟踪CSDN-markdown编辑器
  7. python编程从入门到实践答案-《Python编程:从入门到实践》第五章 if语句 习题答案...
  8. 微软官方Windows Server 2008实战攻略系列
  9. redis的事务总结
  10. 企业级rancher搭建Kubernetes(采用rancher管理平台搭建k8s)
  11. 用Java开发自己的Kubernetes控制器,想试试吗?
  12. redis 系列19 客户端
  13. yum文件,来自网络
  14. 清华姚班和100个“张小龙” | 中国AI天才养成计划
  15. Java中this的用法总结
  16. Android WAP NET 区别
  17. 一夜之间,几十万人失去房票!
  18. 【LSTM新闻数据集分类代码】
  19. PIV粒子图像运动场
  20. 关于傅里叶的总结(一)

热门文章

  1. python 字符串切割
  2. js根据年度周次获取时间,以及根据时间获取周次
  3. 公司网站源码|公司小程序源码带手机版
  4. form表单提交时多个相同name属性问题解决方案一
  5. 固态硬盘 linux速度慢,都说SSD固态硬盘用久了会变慢,这才是罪魁祸首,你都知道吗?...
  6. python画梅花_Python学习笔记三:函数
  7. 在推广初期该如何运营应用
  8. 华为交换机---自动备份配置到指定ftp服务器
  9. 陈菜根:判断区块链项目的8个价值维度
  10. js获取div元素高度和宽度的方法