【每日一题】缓存穿透、缓存击穿、缓存雪崩及解决方案

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。

当下ChatGPT很火,让人心痒痒想试一试好不好用,因此我就试着借它写一篇文章,但是试了几次最终还是没有生成想要的结果,基本上每次都是缓存击穿写了点之后也就没了,也不知道是网络问题还是怎么了。不过本文最终还是由ChatGPT主导生成的文章,我只是做个简单的修饰。

ChatGPT

好了,接下来言归正传。

缓存是许多现代Web应用程序的重要组成部分,因为它可以大大提高系统的性能和可靠性。然而,缓存也存在一些潜在的问题,如缓存穿透、缓存击穿和缓存雪崩,这些问题可能导致系统性能下降甚至宕机。因此,对这些问题的理解和解决方案非常重要。面试也会经常问到缓存相关知识,缓存穿透、缓存击穿、缓存雪崩基本也是必问的问题之一。但是我一个QPS不到10系统,问我这些问题,真的让我很为难。。

缓存穿透

缓存穿透(Cache Penetration) 是指大量的无效请求直接到达后端数据库,因为缓存中不存在该数据的缓存。这种情况下,大量的请求将直接影响到数据库的性能,并可能导致数据库崩溃。

解决方案:

  1. 设置布隆过滤器(Bloom Filter) :使用布隆过滤器可以快速识别无效数据,从而避免直接请求数据库。

    简单介绍一下布隆过滤器:

    布隆过滤器(Bloom Filter) 是一种基于哈希的快速、高效的数据结构,可以用于判断一个元素是否可能属于某个集合,它可以在极小的空间开销下,实现近似快速查询,但存在一定的误判率。

    布隆过滤器的核心思想是:如果一个元素不在集合中,那么它对应的每一个位都不会被置为1,因此查询时只需要检查这些位是否都为1即可确定该元素不在集合中。而如果一个元素在集合中,那么它对应的位可能被其他元素所置为1,因此查询时只能判断该元素可能在集合中,但不能确定其一定在集合中。

  2. 设置空值缓存:当请求的数据不存在时,可以将一个空值缓存到缓存中,避免重复请求数据库。

  3. 黑名单机制:对于请求失败次数进行记录,超过一定次数后,将该数据加入黑名单,以后不再请求该数据。

缓存击穿

缓存击穿(Cache Breakdown) 是指在一个热点数据的缓存过期时,大量的请求同时命中数据库,导致数据库压力过大。

解决方案

  1. 加锁:在缓存数据过期时可以使用锁机制,避免多个请求同时命中数据库。

  2. 缓存预热:在缓存数据过期前,可以使用缓存预热的方法将数据提前加载到缓存中,从而避免缓存数据过期时大量请求数据库。

  3. 热点数据不过期:热点数据过期时间设置为不过期,后台定时去异步刷新缓存。

缓存雪崩

缓存雪崩(Cache Avalanche) 是一种常见的缓存问题,发生在大量缓存数据同时过期时。当大量请求同时命中数据库,数据库压力过大,导致数据库宕机或性能严重下降。

解决方案

  1. 缓存失效随机化:通过随机化缓存数据的失效时间,可以避免所有数据同时过期,从而避免缓存雪崩的问题。

  2. 动态调整缓存失效时间:通过动态调整缓存数据的失效时间,可以根据实际情况调整缓存数据的失效时间,从而避免缓存雪崩的问题。

  3. 缓存预热:在缓存数据过期前,可以使用缓存预热的方法将数据提前加载到缓存中,从而避免缓存数据过期时大量请求数据库。

  4. 设置缓存容错:在缓存系统中设置容错机制,在缓存数据过期时可以使用备用数据源,从而避免数据库宕机。

  5. 缓存集群:使用缓存集群可以将缓存负载分散到多台机器上,从而避免缓存雪崩的问题

总结

最后对缓存穿透、缓存击穿、缓存雪崩做一个总结:

缓存穿透缓存击穿缓存雪崩
原因大量的无效请求直接到达后端数据库一个热点数据的缓存过期时,大量的请求同时命中数据库大量缓存数据同时过期时。当大量请求同时命中数据库
解决方案设置布隆过滤器、设置空值缓存、黑名单机制加锁、缓存预热、热点数据不过期缓存失效随机化、动态调整缓存失效时间、缓存预热、设置缓存容错、缓存集群

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/20110.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

只需这一篇博客就能完全弄懂LSM树

早期LSM树 为什么需要LSM树 B树的数据都存储在叶子节点中,而叶子节点一般都存储在磁盘中。因此,每次插入的新数据都需要随机写入磁盘,而随机写入的性能非常慢。如果是一个日志系统,每秒钟要写入上千条甚至上万条数据&#xff0c…

数据库/MySQL - 深入探究 - 1

1.应用场景 主要用于了解和掌握数据库/MySQL - 更新操作详细流程。 2.学习/操作 1.文档阅读 主要来自于AI的对话【geek chat, chatgpt】 以及官方文档资料,以及其他技术文章,专栏等。 2.整理输出 抛出问题: 数据库【这里以mysql…

EMQX在Windows系统下的开机自启与异常自动重启脚本

目录 0.前言 1.介绍 2.运行与停止 2.1 运行批处理程序 2.2 停止批处理程序 2.3 开机自启动 3.运行结果 4.详细介绍 5.前台运行版本 0.前言 由于为某万年老项目做运维,但源码遗失以及项目遗留问题导致emqx经常崩溃,故无法追根溯源,迫于…

量化工具使用介绍——Tushare

Tushare ID:497485 今年年初的时候,我和几位小伙伴一起合作打花旗杯,项目和量化交易有关。不可避免地会使用到一些常规的量化工具(尤其是python的第三方库),虽然决赛还没有开始,我们已经确定进入了二十强。…

BigQuant策略做量化真的能赚钱吗?

BigQuant策略做量化可以赚钱,但是是建立在一些前提条件基础之上的。量化策略本身存在的意义就是通过数量化模型建立科学投资体系,获取稳定收益,相比传统投资,其具备纪律性、系统性、及时性、准确性等诸多优势,所以一个…

自己做量化交易软件(45)小白量化实战18--直接使用通达信自编指标公式进行分析绘图和回测

自己做量化交易软件(45)小白量化实战18–直接使用通达信自编指标公式进行分析绘图和回测 小白量化一代提供了Python公式算法模式来写量化程序。 小白量化二代提供了仿通达信公式的模式来写量化程序。 小白量化三代除了仿通达信公式的模式来写量化程序外(见前几篇博客…

自己做量化交易软件(16)用小白通通量化AI框架打造自己的量化平台

最近一段时间&#xff0c;我主要学习python3和tkinter的窗口开发&#xff0c;对tkinter编程逐步了解。 此外&#xff0c;应广大朋友要求&#xff0c;我写了 一本学习python3学习书籍<小白学Python3实战搭建量化投资平台>. <小白学Python3实战搭建量化投资平台>内容…

Chat GPT是什么,初学者怎么使用Chat GPT,需要注意些什么

目录 Chat GPT是什么 初学者怎么使用Chat GPT 使用Chat GPT需要注意什么 一些简单的prompt示例 Chat GPT是什么 Chat GPT是由OpenAI开发的一种大型语言模型&#xff0c;它基于GPT&#xff08;Generative Pre-trained Transformer&#xff09;架构。GPT是一种基于深度学习的…

从GPT到chatGPT(一):GPT1

GPT1 文章目录 GPT1前言正文模型架构无监督学习有监督学习处理不同特定任务 实验训练细节实验结果 分析预训练层参数转移的影响zero-shot的表现消融实验 总结 前言 GPT1&#xff0c;出自于OpenAI的论文《Improving Language Understanding by Generative Pre-Training》&#…

ChatGPT+MindShow快速制作ppt

一、ChatGPT&MindShow简介 1、什么是ChatGPT? ChatGPT是一种基于自然语言处理和深度学习技术的人工智能语言模型&#xff0c;使得人们可以更加方便地与计算机进行交互&#xff0c;如智能问答等。 2、什么是MindShow? MindShow只需要在网页上登录即可&#xff0c;可以…

玩转ChatGPT:回答审稿人问题

一、写在前面 前段时间一篇时间序列预测的文章返修&#xff0c;还挺幸运的&#xff0c;给了个小修。 不过问题也问得有点刁钻&#xff0c;应该是个行家。 想到手头有小Chat&#xff0c;打算使用TA来辅助我回答审稿人问题。 以下展示仅仅提供一个工作流和思路&#xff0c;具体…

Jina AI 创始人肖涵博士:揭秘 Auto-GPT 喧嚣背后的残酷真相

Auto-GPT 究竟是一个开创性的项目&#xff0c;还是一个被过度炒作的 AI 实验&#xff1f;本文为我们揭开了喧嚣背后的真相&#xff0c;并揭示了 Auto-GPT 不适合实际应用的生产局限性。 背景介绍 这两天&#xff0c;Auto-GPT&#xff0c;一款让最强语言模型 GPT-4 能够自主完成…

两款吾爱破解优秀软件,批量查找文本,图像视频画质增强

批量查找文本 By&#xff1a;tuao 我们在电脑中查找文件的方式有很多&#xff0c;只要知道文件名便能很容易找到 但如果只记得文档中的某个关键词&#xff0c;而忘记文件名称的话&#xff0c;找起来就有些费劲了 这款工具便可以批量的在word、wps、excel、pdf和txt中查找文本…

吾爱破解论坛2021年11月11日,光棍节免费开放注册

点击上方蓝字"优派编程"选择“加为星标”&#xff0c;第一时间关注原创干货 官方原话&#xff1a; 吾爱破解论坛从2008年3月13日建立以来&#xff0c;陪伴众多坛友走过了12年艰辛而辉煌的风雨历程&#xff0c;以带领新手走入密界大门为基础&#xff0c;汇集了一大批爱…

吾爱出品,必属精品

前言 吾爱破解论坛是一个非常老牌的软件技术交流地&#xff0c;虽然经过多次整改&#xff0c;人气不如从前了 但也依旧能找到很多好玩好用的东西&#xff0c;小编不少分享的软件都是在这个论坛找到的 今天又收集了4款吾爱上高评霸榜的小工具&#xff0c;都很实用&#xff01…

txt工具吾爱版

每次在网上复制的文本内容都是乱七八糟的&#xff1f;那么可以配合txt工具来处理&#xff0c;这是由吾爱破解pgzzh用户出品的一款非常实用、绿色小巧的电脑排版工具&#xff0c;不要看该软件大小才几百KB&#xff0c;其功能是非常好用的&#xff0c;主要就是为用户们提供了去除…

吾爱studio3T

根本逻辑讲解&#xff1a;通过注册表更改studio3T试用时间到期的两种方 法 本例逻辑为通过不断重置studio 3t的试用时间达成伪永久&#xff0c;此软件少有永久免费版&#xff0c;如有永久的请在评论区我。 第一种方法 第一步&#xff1a;winr输入 regedit打开注册表 第二步&…