Redis的缓存穿透、缓存雪崩、缓存击穿怎么解决

news2024/9/20 18:50:38

Redis在实际使用中是会遇到很多问题的,例如今天说到的缓存穿透、缓存雪崩、缓存击穿。

缓存穿透:

缓存穿透是指客户端请求的数据在redis缓存和数据中都不存在,这样缓存永远都不会生效,这些请求都会打到数据库当中,对数据库造成压力,这种情况可能是恶意攻击的情况。

常见的解决方案有两种:

一种是缓存空对象,不管这个结果在数据库当中是否查询到,都将其缓存到redis当中并设置过期时间,造成结果就是可能造成内存的消耗和短期的不一致

还有一种就是布隆过滤器,布隆过滤器可以简单理解成是一个二进制的存储结构,当做一个白名单来使用,请求首先来到布隆过滤器,如果存在则放行,不存在则拒绝。

缓存雪崩:

缓存雪崩是指缓存数据在同一时间内大量失效,造成大量请求全部打到数据库上。

常见的结局方案是将过期时间设置的更加分散,可以在设置过期时间时加一个随机的事件,让数据不要过期的那么同时

缓存击穿:

缓存击穿指的是热点数据过期之后大量的请求发送到了数据库,造成了压力

解决办法可以通过互斥锁和逻辑过期。

互斥锁的实现逻辑是:再一次查询缓存未命中的情况下,获取到互斥锁,然后进行查询数据库操作,重建缓存,并写入缓存当中之后释放锁,这样后续请求就可以到缓存当中获取到,互斥锁可以通过setnx实现

详细看这里:spring项目中如何通过redis的setnx实现互斥锁解决缓存缓存击穿问题-CSDN博客

逻辑过期是通过业务实现热点数据的不过期,可以通关在值里添加expire字段,实现过期判断,如果发现这个逻辑时间已经过期,则获取互斥锁,开启一个新线程去查询数据库重写缓存,自己返回旧数据,此时如果别的线程访问缓存数据,发现过期尝试去获取锁,失败后直接返回过期数据。

 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

对中文进行文本分类的常用方法

一:关键词分类和基于规则的分类 关键词分类和基于规则的分类是两种常见的文本分类方法,它们可以应用于中文文本的分类。下面我将详细介绍这两种方法: 关键词分类 原理:这种方法通过识别文本中出现的特定关键词或短语来确定文本的…

数据清洗-缺失值填充-随机森林填充

目录 一、安装所需的python包二、采用随机森林算法进行缺失值填充2.1可直接运行代码2.2以某个缺失值数据进行实战代码运行过程截屏:填充后的数据截屏: 三、随机森林算法 (Random Forest) 介绍3.1随机森林的定义3.2随机森林的基本思想3.3随机森林的工作原…

国产动画《缉妖录之启程篇》定档国庆,吴承恩化身热血男主

9月15日,国产原创动画《缉妖录之启程篇》正式定档。动画由是船长影视制作,阿杰、谷江山等配音,于腾讯视频、极光TV播出,10月3日上午10:00点起更新两集,10月4日起,会员每日10:00更新一集,非会员每…

杨敏博士:基于法律大模型的智能法律系统

9月26日,杨敏博士受邀参加人工智能助力法治化营商环境发展论坛暨得理法律大模型发布会并发表了“基于法律大模型的智能法律系统”主题演讲。杨博士是香港大学计算机博士,担任中科院深圳先进院高性能数据挖掘实验室主任,是深圳市海外高层次人才…

一起对话式学习-机器学习02——机器学习方法三要素

【一】核方法 首先补充一下核方法,这应是机器学习分类中的内容。 什么是核方法呢?听起来很高级,但理解很简单: 官方定义:核方法是使用核函数表示和学习非线性模型的一种机器学习方法,可以用于监督学习和非监…

教你开发一套外卖霸王餐小程序系统

大家好,我是鲸天科技千千,大家都知道我是做小程序开发的,平时会给大家分享一些互联网相关的创业项目,感兴趣的可以跟我关注一下。 首先就是要搭建一个自己的霸王餐系统小程序,我们自己的工作就是把这个小程序推广宣传…

828华为云征文|华为云Flexus X实例Nginx性能加速评测及对比

目录 前言 一、Flexus云服务器X介绍 1.1 Flexus云服务器X实例简介 1.2 Flexus云服务器X实例特点 1.3 Flexus云服务器X实例使用场景 二、Flexus云服务器X购买 2.1 Flexus X实例购买 2.2 重置密码 2.3 登录服务器 2.4 启动Nginx 三、华为云Flexus X实例加速Nginx测评 3.1 安装测试…

书生大模型实战营学习[2]Python task

学习目标:Python学习 Python实现wordcount Vscode连接InternStudio debug笔记 学习内容: 任务1:请实现一个wordcount函数,统计英文字符串中每个单词出现的次数。返回一个字典,key为单词,value为对应单词出…

Linux-进程优先级

🌈个人主页:Yui_ 🌈Linux专栏:Linux 🌈C语言笔记专栏:C语言笔记 🌈数据结构专栏:数据结构 🌈C专栏:C 文章目录 1. 为什么要有优先级的概念2.进程优先级的基本…

进程间关系和守护进程

序言 当我们使用指令 ps 查看进程的相关信息时,在以前我们只是关注该进程的 PID(该进程的标识符) , PPID(其父进程的标识符) 以及 STAT(该进程的状态)。  那 PGID 和 SID 又是什么?有什么作用呢? 1. 进程组 1.1 什么是进程组&am…

最强神器Typora 2024(亲测有效)| Markdown 工具推荐

听俺讲一下 大家好,我是程序员-杨胡广,今天想给大家分享一个在编写文档时的神器——Typora。相信不少小伙伴都在寻找一款既简洁又强大的 Markdown 编辑工具,而 Typora 无疑是最值得推荐的选择。 当我在大学时偶然发现了它,直到今…

【Python 数据分析学习】Matplotlib 的基础和应用

题目 1 Matplotlib 主要特性2 Matplotlib 基础知识2.1 导入模块2.2 图形构成2.2.1 图形(Figure)2.2.2 轴 (Axes)2.2.3 轴线(axis) 2.5 中文设置2.5.1 借助rcParams修改字体实现设置2.5.2 增加一个fontprope…

计算机视觉 对比学习 串烧二

文章目录 文章列表三、CPC3.1 文章摘要3.2 实验结果3.3 文章图示图 1: 对比预测编码(CPC)的概览图 2: 语音(演讲)表示的t-SNE可视化图 3: 预测未来潜在表示的准确率图 4: 图像的对比预测编码(CPC)的可视化图…

【Qt】Qt C++ Widget中嵌入qml

1. 效果 2. 方法 使用QQuickWidget方式 QQuickWidget *view new QQuickWidget;view->setSource(QUrl::fromLocalFile("myqmlfile.qml"));view->show();除了QQuickWidget方式还可以使用QQuickView方式,请自行查阅资料 3. 代码 3.1 工程目录 3.2 …

初始爬虫7

针对数据提取的项目实战&#xff1a; 补充初始爬虫6的一个知识点&#xff1a; etree.tostring能够自动补全html缺失的标签&#xff0c;显示原始的HTML结构 # -*- coding: utf-8 -*- from lxml import etreetext <div> <ul> <li class"item-1">…

图论篇--代码随想录算法训练营第五十八天打卡|拓扑排序,dijkstra(朴素版),dijkstra(堆优化版)精讲

拓扑排序 题目链接&#xff1a;117. 软件构建 题目描述&#xff1a; 某个大型软件项目的构建系统拥有 N 个文件&#xff0c;文件编号从 0 到 N - 1&#xff0c;在这些文件中&#xff0c;某些文件依赖于其他文件的内容&#xff0c;这意味着如果文件 A 依赖于文件 B&#xff0…

软件设计之JavaWeb(4)

软件设计之JavaWeb(4) 此篇应在MySQL之后进行学习: 路线图推荐&#xff1a; 【Java学习路线-极速版】【Java架构师技术图谱】 尚硅谷全新JavaWeb教程&#xff0c;企业主流javaweb技术栈 资料可以去尚硅谷官网免费领取 此章节最好学完JDBC观看 学习内容&#xff1a; 会话管理…

CleanClip for Mac 剪切板 粘贴工具 历史记录 安装(保姆级教程,新手小白轻松上手)

CleanClip&#xff1a;革新macOS剪贴板管理体验 目录 功能概览 多格式历史记录保存智能搜索功能快速复制操作拖拽功能 安装指南 前期准备安装步骤 配置与使用 功能概览 多格式历史记录保存 CleanClip支持保存文本、图片、文件等多种格式的复制历史记录&#xff0c;为用户提…

vue 在线预览word和excel

yarn add vue-office/excel vue-office/docx <template><div><vue-office-docx:src"docx"style"height: 100%; margin: 0; padding: 0"rendered"rendered"/></div> </template><script> //引入VueOfficeDoc…

C:字符串函数(续)-学习笔记

穗 一些闲话&#xff1a; 最近玩了这款饿殍-明末千里行&#xff0c;不知大家是否有听过这款游戏&#xff0c;颇有感触&#xff01;&#xff01;&#xff01; 游戏中最让我难以忘怀的便是饿殍穗线的故事&#xff0c;生在如今时代的我之前无法理解杜甫在目睹人间悲剧时的心情&…