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

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

缓存穿透:

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

常见的解决方案有两种:

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

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

缓存雪崩:

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

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

缓存击穿:

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

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

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

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

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

 

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

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

相关文章

【CTF MISC】XCTF GFSJ1088 [中等] QR1 Writeup(图像处理+QR Code识别)

[中等] QR1 一张空白的图片? 解法 一张空白图片。 用 Photoshop 打开,放大,发现很多小黑点。 将图片复制到新文档,用魔棒工具选择白色部分。 Ctrl Shift i 反选。编辑,描边,黑色,10px&#…

java面向对象:构造方法

给出javabean类代码 package google.test5;public class Student {private String name;private int age;public Student(){System.out.println("看看我打印了嘛?");}public Student(String name, int age){this.name name;this.age age;}public void …

2024 年高教社杯全国大学生数学建模竞赛 B 题 生产过程中的决策问题 第二问chatGPT4的回答,matlab和python代码

持续更新中,2024年所有 数学建模比赛思路代码都会发布到专栏内,只需要订阅一次。 5号6号半价,会结合历年优秀论文、人工智能深度学习算法、chatgpt。会定期发布思路、代码和论文。思路和论文基本拿不到国奖,想要获得国奖的同学不要购买。适合基础差的学生,只适合冲击省奖。…

PMP--一模--解题--61-70

文章目录 14.敏捷61、 [单选] 作为估算活动持续时间过程的一部分,项目经理促成了与产品负责人和Scrum团队的冲刺计划会议。项目经理将用户故事分解为较小的任务项,以小时为单位估算所需时间,并根据团队的能力确定冲刺待办事项列表。尽管计划周…

您使用过哪些AI集成工具提升工作效率

您使用过哪些AI集成工具提升工作效率 随着AI技术的飞速发展,个人开始寻求高效的方法来构建和管理定制化模型,以简化复杂的开发过程,提高工作效率。说起用AI集成工具来提高工作效率,个人作为开发者,确实在使用AI代码辅助…

引用和指针的区别(面试概念性题型)

个人主页:Jason_from_China-CSDN博客 所属栏目:C系统性学习_Jason_from_China的博客-CSDN博客 所属栏目:C知识点的补充_Jason_from_China的博客-CSDN博客 概念概述 内存占用: 引用:引用一个变量时,实际上并…

.ipynb 图解介绍,轻松入门,提升效率

目录 01 使用jupyter遇到的问题1.1 Python requires ipykernel installed or requires an update 1.1.1 查询所有内核 1.1.2 选择对应的Python版本 02 理解jupyter规则 2.1 系统命令 01 使用jupyter遇到的问题 1.1 Python requires ipykernel installed or requires an up…

IP 协议分析《实验报告》

目录 一、 实验目的 二、实验设备和环境 三、实验记录 1、实验环境搭建 2、IP 协议分析 1.设置抓包接口 2.IP 报文分析 3.报文长度计算 4.生存时间 TTL 5.分析总结 3、IP分片 1.IP 分片简介 2.捕获分组 3.结果分析 一、 实验目的 1、掌握 IP 协议数据报格式&…

CPLEX+Yalmip+MATLAB2022a配置

来源:yalmipcplex12.10文件及安装教程-CSDN博客https://blog.csdn.net/qq_41944352/article/details/126421198 安装包 来源:yalmipcplex12.10文件及安装教程-CSDN博客 Cplex 需下载: Microsoft Visual C 2015 Redistributable 添加路径&a…

跨界融合,GIS如何赋能游戏商业——以《黑神话:悟空》为例

在数字化时代,地理信息系统(GIS)技术正以其独特的空间分析和可视化能力,为游戏产业带来革命性的变革。《黑神话:悟空》作为中国首款3A级别的动作角色扮演游戏,不仅在游戏设计和技术上取得了突破&#xff0c…

【Hot100】LeetCode—4. 寻找两个正序数组的中位数

目录 1- 思路题目识别二分 2- 实现⭐4. 寻找两个正序数组的中位数——题解思路 3- ACM 实现 原题链接:4. 寻找两个正序数组的中位数 1- 思路 题目识别 识别1 :给定两个数组 nums1 和 nums2 ,找出数组的中位数 二分 思路 将寻找中位数 —…

Java和西门子S7-1200通讯调试记录

这是很久以前做的一个项目,工业现场一个agv,主要作用的清扫摇床(一种选矿设备),选用的S7-1200的CPU。工作原理是agv上面放一个机械臂,机械臂上面装一个扫把,到固定位置以后,执行清扫…

结合人工智能,大数据,物联网等主流技术实现业务流程的闭环整合的名厨亮灶开源了

明厨亮灶视频监控平台是一款功能强大且简单易用的实时算法视频监控系统。它的愿景是最底层打通各大芯片厂商相互间的壁垒,省去繁琐重复的适配流程,实现芯片、算法、应用的全流程组合,从而大大减少企业级应用约95%的开发成本。AI技术可以24小时…

Beyond Compare 标准版与专业版 区别

Beyond Compare 的标准版是一个功能齐全的比较工具,而不是一个精简的“精简版”。标准版具有全屏编辑、完全 Unicode 支持、语法高亮等等。 但是,Pro 版增加了以下高级功能: 3 路合并 将独立更改与共同上级进行比较,以便为文件夹…

C++第五十一弹---IO流实战:高效文件读写与格式化输出

✨个人主页: 熬夜学编程的小林 💗系列专栏: 【C语言详解】 【数据结构详解】【C详解】 目录 1. C语言的输入与输出 2. 流是什么 3. CIO流 3.1 C标准IO流 3.2 C文件IO流 3.2.1 以写方式打开文件 3.2.1 以读方式打开文件 4 stringstre…

算法入门-贪心1

第八部分:贪心 409.最长回文串(简单) 给定一个包含大写字母和小写字母的字符串 s ,返回通过这些字母构造成的最长的回文串 的长度。 在构造过程中,请注意 区分大小写 。比如 "Aa" 不能当做一个回文字符串…

C++ ——string的模拟实现

目录 前言 浅记 1. reserve(扩容) 2. push_back(尾插) 3. iterator(迭代器) 4. append(尾插一个字符串) 5. insert 5.1 按pos位插入一个字符 5.2 按pos位插入一个字符串 …

2024年全国大学生数学建模竞赛B题生产过程中的决策问题分析

目录 引言 问题 1:抽样检测方案设计 问题 2:生产过程中的决策 决策阶段划分 决策方案 结果 问题 3:多道工序和零配件的决策 生产流程 决策过程 问题 4:基于抽样检测的重新决策 动态调整次品率 结论 引言 在2024年全国…

Python 的 WSGI 简单了解

从 flask 的 hello world 说起 直接讨论 WSGI,很多人可能没有概念,我们还是先从一个简单的 hello world 程序开始吧。 from flask import Flaskapp Flask(__name__)app.route("/", methods[GET]) def index():return "Hello world!&q…

【Axure原型】B端系统登录注册页设计成这样,就不用跟小孩一桌了

前言 在B端后台中,登录注册页这个东西,因为感觉很简单,所以经常不被产品经理们重视。但是登录注册页作为一个后台系统的门面,直接影响用户第一印象,又是非常重要的存在。 登录注册页的价值 B端系统登录注册页是用户…