码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • redis的雪崩、穿透、击穿解析


    雪崩

    redis中的key在某个时间段内,大量的失效,此时有大量请求查询这些key,那么这些请求就会去到后端数据库查询,后端数据库压力过大导致数据库宕机,最后系统崩溃。(雪崩的时候没有一片雪花是无辜的)
    解决:

    ①缓存失效后,通过加锁或者队列的方式来控制线程去读数据库的数量。
    ②做二级缓存,A1为原始缓存,短期的。A2为拷贝缓存,长期的,A1失效了,A2还可以查询
    ③设置key的时候尽量让存活时间不同,均匀过期时间,尽量不要在同一时间段过期。

    穿透

    有大量恶意的请求访问redis中不存在的key,这些请求就会去访问后端数据库,使得后端数据库压力增大
    解决:

    ①封掉恶意的ip地址
    ②在访问redis不存在的key时,去访问数据库统一返回null
    ③对不合法的参数进行拦截,拒绝访问
    ④使用布隆过滤器,将所有可能存在的key存在一个足够大的bitmap中,那么一个不存在的数据就会被这个bigmap拦截,从而减小对数据库的访问压力

    击穿

    有大量请求在访问一个redis的热点key,突然这个热点key失效了,那么这些请求都去访问后端数据库,导致后端数据库宕机。
    解决:

    ①把热点key的存活时间设置为永久
    ②使用互斥锁,当key失效后,第一个线程拿到锁去访问数据库,其他线程等待,把这个线程访问到的数据缓存到redis中,其他线程进来后发现redis已经有数据了,那么都去访问redis的数据。

    参考:Redis的雪崩,击穿,穿透详解

  • 相关阅读:
    vue3+antd+g2plot快速入门
    D - United We Stand
    苹果电脑的文件怎么复制到移动硬盘,macbook文件怎么拷贝到移动硬盘
    22、接口与抽象类、匿名类的介绍
    Servlet入门接口、类和配置学习
    一位苦逼程序员的找工作经历
    【RuoYi-Cloud-Plus】学习笔记 02 - Nacos(二)寻址机制之文件寻址分析
    【ISO】Windows10系统ISO镜像怎么从微软官网下载?
    深度学习21天——卷积神经网络(CNN):服装图像分类(第3天)
    Python3虚拟环境之pipenv
  • 原文地址:https://blog.csdn.net/hello_word_demo1/article/details/125481078
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | 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号