码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 如何解决缓存雪崩、击穿、穿透问题


    Redis作为流行的分布式缓存,在实际生产环境中会遇到缓存穿透、缓存击穿、缓存雪崩等异常场景,为了避免异常带来巨大损失,我们需要了解每种异常产生的原因和对应的解决方案,来提升系统可靠性和可用性。
    在这里插入图片描述

    缓存穿透

    用户请求的数据在缓存和数据库中都不存在,用户每次请求数据都需要查询数据库,导致对后台数据库的频繁访问,数据库负载压力增大,这种现象就叫做缓存穿透。

    产生原因
    在这里插入图片描述
    说明:

    大量访问不存在的key,导致数据库处理大量请求

    解决方案
    解决缓存穿透的方法有两种,第一种是缓存空对象,第二种是使用布隆过滤器。

    缓存空对象
    当数据库中查不到数据的时候,缓存空对象,然后给这个空对象的缓存设置过期时间,下次再查询 数据的时候,直接从缓存中获取,从而达到了减小数据库压力的目的。

    方案缺点
    需要缓存层提供更多的内存空间来缓存空对象,浪费更多内存空间。
    即使在缓存空对象时设置很短的过期时间,也会导致这一段时间内的数据不一致问题。
    布隆过滤器
    关于布隆过滤器将在后续的文章中详细讲解,本文不进行阐述。

    缓存击穿

    Redis中存在某些热点数据时,即有大量请求并发访问的key-value数据。当极热点key-value数据突然失效时,缓存未命中引起对后台数据库的频繁访问,这种现象叫缓存击穿。

    产生原因
    在这里插入图片描述
    说明:

    第一种为大量Key同一时间过期
    第二种为Redis故障

    解决方案
    针对第一种大量Key同时过期

    设置每个key的过期时间尽量不一样,可以在超时时间上添加一个随机时间长度,使它们的失效点尽可能均匀分布。

    针对热度数据可以永不过期

    针对第二种Redis发生故障

    采用Redis的几种高可用方案部署,具体的部署方案可以参考我之前写的Redis的高可用架构。

  • 相关阅读:
    车灯修复UV胶的优缺点有哪些?
    【鸿蒙学习笔记】尺寸设置・layoutWeight・对子组件进行重新布局
    收银软件 收银系统 收银管理系统 选购秘籍大放送,看完这篇再买不亏!
    C语言 循环结构
    Redis集群模式通信成本影响因素
    java计算机毕业设计小区广告位招商系统源码+系统+数据库+lw文档+mybatis+运行部署
    python基础(五)输入和while
    你所经历的一切,可能是假的?
    【vue网站优化】秒开网页
    C++基础编程100题-015 OpenJudge-1.3-13 反向输出一个三位数
  • 原文地址:https://blog.csdn.net/weixin_42938916/article/details/126049550
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号