当前位置: 首页 > news >正文

Redis如何解决缓存击穿,缓存雪崩,缓存穿透

        1:缓存击穿

可以把Redis想象成一件防弹衣。MySQL想象成人的身体,当Redis中的一个Key变成了爆款,承担着非常大的并发量,但当这个key突然失效了,就会缓存击穿Redis直接访问MySQL,造成MySQL数据库负荷量太大,影响接口的效率。

        解决方法:

1:设置成永不过期(将一些热点数据提前设置成永不过期,当突然有冷门数据访问量变多怎么办,可以设计一个算法,这个算法用来判断,当请求一个key到一定程度时,就能将这个key设置成永不过期)

2:加一个双重校验锁(同步锁):当有请求想访问接口时,我们首先去redis中缓存寻找是否有需要的数据,如果没有进入我们的校验锁,只允许一次访问,其他请求暂时堵塞,这个请求直接在MySQL中寻找,如果有就存到Redis中,如果没有就抛出一个异常

        2:缓存雪崩

同样这个是击穿了Redis的同时击穿了MySQL,Redis中的缓存集中过期,可能会造成数据库的宕机

        解决方法:

1:设置一个双重校验锁,实现加锁排队

2:在redis中设置随机时间失效,这样就可以避免在短时间内同时失效大量数据

3:Redis的高可用,可以设计几个机房备用

        3:缓存穿透

在Redis的缓存之中没有找到相应的数据,然后在MySQL数据库中也没有,大量的情况下造成数据库宕机

        解决方法:

1:进行一个参数校验,防止用户恶意查找数据

2:缓存空对象,在防止缓存穿透和缓存雪崩的基础上缓存空对象,记得设置过期时间

3:布隆过滤器(了解即可)

http://www.xdnf.cn/news/1062001.html

相关文章:

  • .docx 和 .doc 都是 Word 文档格式的区别
  • 华为 FreeArc耳机不弹窗?
  • css 实现1个像素在不同分辨率屏幕上画网格线
  • 如何正确处理音频数据:16位整数与32位浮点数
  • 【考研数学:高数11】一元函数积分学的应用(二)——积分等式和积分不等式
  • SSE 流与普通 HTTP 响应的区别
  • FPGA基础 -- Verilog 层次路径名
  • 物体变化下的迈克尔逊干涉:条纹密度、载波解调与双曝光去畸变
  • DAY 54 python打卡
  • 解锁数据宝藏:数据挖掘之数据预处理全解析
  • 【MySQL性能优化】DISTINCT和GROUP BY去重性能深度剖析
  • 基于存储过程的MySQL自动化DDL同步系统设计
  • 技术评测:三丰云免费服务器的真实能力边界
  • Vue 比较两个数组对象,页面展示差异数据值
  • GO 原子操作面试题及参考答案
  • 前端页面Javascript数组
  • 西门子PLC模块上的SF(系统故障)红灯故障分析
  • 前端工程结构设计指南:如何让模块解耦、易维护、可拓展
  • postgresql 函数调试
  • 接口测试需要注意的一些BUG
  • 多相机三维人脸扫描仪:超写实数字人模型制作“加速器”
  • chili3d笔记19 读取dxf
  • 阿里巴巴开源的 分布式事务解决方案Seata
  • iOS应用启动时间优化:通过多工具协作提升iOS App性能表现
  • 1532.在区间范围内统计奇数数目
  • Android 当apk是系统应用时,无法使用webView的解决方案
  • 京运通601908,一只值得长期跟踪操作的波段投资标的,两个指标即可做好
  • Cargo 与 Rust 项目
  • Spring Boot自动配置原理
  • 【智能安全帽新升级】搭载VTX316TTS语音合成芯片,让安全“听得见”!