Redis - 缓存访问 缓存穿透 缓存击穿 缓存雪崩
一、缓存访问
1、客户端发送请求
2、服务首先会请求 redis,查看请求的内容是否存在
3、redis 将请求结果返回给服务,如果返回的结果有数据则直接返回给客户端;如果没有数据则会继续往下执行
4、服务从数据库中查询请求的数据
5、数据库将查询的结果返回给服务
6、如果数据库有返回数据,则将返回的结果添加到 redis
7、将请求到的数据返回给客户端
二、缓存穿透
通过接口访问一个缓存和数据库都不存在的数据。
因为服务出于容错考虑,当请求从持久层查不到数据则不写入缓存,这将导致请求这个不存在的数据每次都要到持久层去查询,失去了缓存的意义。
此时,缓存起不到保护后端持久层的意义,就像被穿透了一样。导致数据库存在被打挂的风险。
解决办法
1、接口请求参数的校验。对请求的接口进行鉴权,数据合法性的校验等;比如查询的 userId 不能是负值或者包含非法字符等。
2、当数据库返回空值时,将空值缓存到 redis,并设置合理的过期时间。
3、布隆过滤器。使用布隆过滤器存储所有可能访问的 key,不存在的 key 直接被过滤,存在的 key 则再进一步查询缓存和数据库。(布隆过滤器存在一定误判情况:当判断不存在时一定不存在,当判断存在时极小可能不存在)
三、缓存击穿
某个热点 key,在缓存过期的一瞬间,同时有大量的请求打进来,由于此时缓存过期了,所以请求最终都会走到数据库,造成瞬时数据库请求量大、压力骤增,导致数据库存在被打挂的风险。
解决办法
1、加互斥锁。当热点 key 过期后,大量的请求涌入时,只有第一个请求能获取锁并阻塞,此时该请求查询数据库,并将查询结果写入 redis 后释放锁。后续的请求直接走缓存。
2、设置缓存不过期或者后台有线程一直给热点数据续期。
四、缓存雪崩
大量的热点数据过期时间相同,导致数据在同一时刻集体失效。造成瞬时数据库请求量大、压力骤增,引起雪崩,导致数据库存在被打挂的风险。
解决办法
1、将热点数据的过期时间打散。给热点数据设置过期时间时加个随机值。
2、加互斥锁。当热点 key 过期后,大量的请求涌入时,只有第一个请求能获取锁并阻塞,此时该请求查询数据库,并将查询结果写入 redis 后释放锁。后续的请求直接走缓存。
3、设置缓存不过期或者后台有线程一直给热点数据续期。
相关文章:
Redis - 缓存访问 缓存穿透 缓存击穿 缓存雪崩
一、缓存访问 1、客户端发送请求 2、服务首先会请求 redis,查看请求的内容是否存在 3、redis 将请求结果返回给服务,如果返回的结果有数据则直接返回给客户端;如果没有数据则会继续往下执行 4、服务从数据库中查询请求的数据 5、数据库将…...
SAP Business Application Studio(BAS)中开发Fiori App的基础知识
1. SAP Fiori Tools SAP Fiori Tools是一套用于支持SAP Fiori应用开发的工具,包括应用模板、可视化编辑器、代码生成、应用预览和集成测试工具等。这些工具可以帮助开发者更快速、更简单地创建和维护SAP Fiori应用。SAP Fiori Tools 可与SAP的开发环境(…...
DashScope - 阿里模型服务灵积
文章目录 关于 DashScope快速上手代码调用http 请求示例Python 调用 关于 DashScope 官方主页:https://dashscope.aliyun.comPYPI : https://pypi.org/project/dashscope/支持模型:https://dashscope.console.aliyun.com/model DashScope灵积模型服务建…...
个人信息-求职[web前端]
我有近近10年开发及6年的管理经验Web前端,所负责的技术团队经历了 Web 前端几代技术变革,参与了几乎,在性能优化、开发效率、所有前端相关项目工程化架构选型上都有丰厚的产出。在上家致力于数据安全前端的相关工作,专注于Vue.js技术栈来推进…...
Apache DolphinScheduler 社区开启讲师招募,赶快加入吧!
随着Apache DolphinScheduler在全球范围内的快速发展,我们的用户群体和社区活动也在不断扩大。 为了进一步丰富我们的社区内容,分享更多有价值的知识和经验,我们诚挚地邀请您加入我们,成为Apache DolphinScheduler社区的分享嘉宾。…...
【HTML面试题】src和href的区别
一、请求资源不同 src 在请求资源时,会把这个资源下载下来href 建立链接通道,也就是引用元素和当前文档建立链接 二、作用结果不同 src 会替换当前元素href 只是引用资源和当前元素建立链接,所以不会替换当前内容。 三、浏览器解析方式不…...
电脑文件msvcp100.dll丢失原因,如何快速修复msvcp100.dll
电脑文件msvcp100.dll丢失原因,最近有朋友在问这个,显然会问这个的人,一般都是遇到了msvcp100.dll丢失的问题了,今天我们就来详细的给大家说说msvcp100.dll这个文件吧,我们只有了解了msvcp100.dll这个文件,…...
安装OneNote for Win10 | Win10/Win11
前言 PC端的OneNote分为2个版本,分别是Microsoft Store版本和Office版本,Microsoft Store版本即为OneNote for Win10,此版的OneNote有最近笔记功能,但检索功能不如Office版本,个人认为2个版本各有优劣。 但OneNote f…...
力扣242. 有效的字母异位词
思路:字母相互抵消的思路,本题字符串中只包含小写字母26位,那就新建record数组int[26],下标0-25,代表小写字母a-z, 需要通过 某字符减a 来达到这一目的; class Solution {public boolean isAnagram(String…...
windows server 下的mysql 8.0.28修改数据库目录
1. 查看当前数据库存储位置 show global variables like %datadir%; 默认是:C:\ProgramData\MySQL\MySQL Server 8.0\Data 2. 修改 C:\ProgramData\MySQL\MySQL Server 8.0\my.ini配置文件。如下: datadirD:/ProgramData/MySQL/MySQL Server 8.0/Dat…...
【Excel自动化办公】使用openpyxl对Excel进行读写操作
目录 一、环境安装 1.1 创建python项目 1.2 安装openpyxl依赖 二、Excel数据读取操作 三、Excel数据写入操作 3.1 创建空白工作簿 3.2 写数据 四、设置单元格样式 4.1 字体样式 4.2 设置单元格背景填充色 4.3 设置单元格边框样式 4.4 单元格对齐方式 4.5 数据筛选…...
大龄女程序员脱单指南:如何科学评估你的Mr. Right?(含C语言代码示例)
大龄女程序员脱单指南:如何科学评估你的Mr. Right? 在这个快节奏、高压力的时代,女程序员们时常在代码的世界里游走,却可能在现实的情感世界里感到迷茫。尤其是对于那些步入“大龄”行列的女程序员来说,脱单似乎成了一…...
深入剖析Java并发库(JUC)之StampedLock的应用与原理
码到三十五 : 个人主页 心中有诗画,指尖舞代码,目光览世界,步履越千山,人间尽值得 ! 在现代多核处理器架构下,并发编程成为提升程序性能的关键手段。Java作为一门广泛使用的编程语言,提供了丰…...
【PMP】每日一练2
项目生命周期与开发生命周期 项目生命周期开发生命周期 项目生命周期 项目生命周期:描述项目从开始到结束所经历的一系列阶段。 项目生命周期类型: 预测型:也称瀑布型生命周期。在生命周期的早期阶段就确定了项目的范围、时间、成本。客户需…...
2024年投影仪显示技术怎么选?哪个好?优缺点详解,买前必看
日前,华为海思LCoS激光投影技术引发了众多关注,该技术的面世,或将在投影行业掀起新的浪潮!众所周知,目前主流的显示技术主要是DLP、3LCD和1LCD几种。那么,这几种技术之间到底有什么区别?下面就带…...
Git Bash命令初始化本地仓库,提交到远程仓库
git init:初始化空仓库 // 初始化一个空仓库或者重新初始化一个存在的仓库 git init git remote // 为当前本地仓库添加一个远程仓库地址 git remote add origin https://gitee.com/xxx/demo.git git pull // 从设置好链接的远程仓库拉去已经存在的数据,…...
Docker 学习笔记一
一、什么是docker Docker 是一个基于轻量级虚拟化技术的容器,整个项目基于Go语言开发;Docker是一个C/S架构,后端众多模块各司其职,docker的daemon是运行在主机上通过client可以进行通信。 docker 由三部分组成:镜像(…...
Git一点通
1.Git的优势 Git是一个伟大的版本管理工具,比之svn,具有以下优势: 分布式版本控制:Git是一种分布式版本控制系统,每个开发者都拥有自己的完整代码库,不需要依赖网络连接就可以进行版本控制、合并和提交操作…...
商标转让有哪些好处 商标转让条件 商标转让流程
商标转让是企业之间转让商标权益的一种交易方式。它在商业运作中扮演着重要的角色,对于企业的发展和战略布局都有一定的影响。 商标转让的好处: 1、商标价值变现:企业在商标注册过程中投入了大量的时间和精力,通过转让可以将商标…...
诺视科技完成亿元Pre-A2轮融资,加速Micro-LED微显示芯片商业化落地
近日,Micro-LED微显示芯片研发商诺视科技(苏州)有限公司(以下简称“诺视科技”)宣布完成亿元Pre-A2轮融资,本轮融资由力合资本领投,老股东盛景嘉成、汕韩基金以及九合创投持续加码,这…...
深度技术解析:QKeyMapper如何实现Windows系统级按键重映射与虚拟手柄模拟
深度技术解析:QKeyMapper如何实现Windows系统级按键重映射与虚拟手柄模拟 【免费下载链接】QKeyMapper [按键映射工具] QKeyMapper,Qt开发Win10&Win11可用,不修改注册表、不需重新启动系统,可立即生效和停止。支持游戏手柄映射…...
别再怕训练ReID了!用PyTorch把DeepSORT特征提取当成分类任务来训(Market-1501数据集实战)
用PyTorch简化DeepSORT特征提取训练:Market-1501实战指南 第一次接触DeepSORT时,我被那些复杂的特征提取网络训练流程吓到了——直到我发现了一个惊人的事实:ReID训练本质上就是一个标准的图像分类任务。本文将带你用最熟悉的PyTorch分类训练…...
Nano-Banana实战教程:生成可直接嵌入技术文档的矢量化风格图
Nano-Banana实战教程:生成可直接嵌入技术文档的矢量化风格图 你是不是也遇到过这样的烦恼?写技术文档、产品说明书或者设计提案时,想配一张清晰、专业的产品结构图,结果要么是手绘的草图不够看,要么是找的素材风格不搭…...
深入解析rviz中基于MVC架构的点云3D坐标拾取机制
1. 为什么rviz没有直接使用OpenGL的坐标拾取API? 第一次接触rviz源码时,我下意识认为它肯定直接调用了gluUnProject这类OpenGL原生API来实现3D坐标拾取。毕竟在常规图形学开发中,这就像喝水一样自然——用现成的API不香吗?但当我…...
从RTL到ATPG:手把手带你走一遍Tessent Shell的Flat Design DFT完整流程(含避坑点)
从RTL到ATPG:Tessent Shell Flat Design DFT全流程实战指南 在芯片设计领域,测试设计(DFT)正变得越来越关键。随着工艺节点不断演进,芯片复杂度呈指数级增长,传统的人工测试方法已无法满足现代SoC的测试需求。Mentor Graphics&…...
2025届学术党必备的十大AI辅助论文网站推荐
Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 目前,人工智能技术已经在学术写作领域当中得到了颇为广泛的运用,进而…...
告别龟速下载!用阿里云镜像源5分钟搞定YOLOv8到v11的完整环境(Windows保姆级教程)
5分钟极速部署YOLO全系列:阿里云镜像源加速Windows环境配置指南 刚接触目标检测的新手们,往往在第一步环境配置就卡壳数小时——PyTorch下载进度条纹丝不动、CUDA版本匹配报错、依赖冲突导致安装失败… 这些坑我三年前第一次跑YOLOv3时全踩过。现在教你用…...
Graphormer效果展示:芳香性分子(萘、蒽)激发态性质预测准确性验证
Graphormer效果展示:芳香性分子(萘、蒽)激发态性质预测准确性验证 1. 模型概述 Graphormer是一种基于纯Transformer架构的图神经网络,专门为分子图(原子-键结构)的全局结构建模与属性预测而设计。该模型在…...
Python-SoundFile音频处理实战指南:从入门到精通的高效开发方案
Python-SoundFile音频处理实战指南:从入门到精通的高效开发方案 【免费下载链接】python-soundfile SoundFile is an audio library based on libsndfile, CFFI, and NumPy 项目地址: https://gitcode.com/gh_mirrors/py/python-soundfile Python-SoundFile是…...
006、轻量化改进(四):神经架构搜索(NAS)与自动设计
一、从一次调试说起 上周在 Jetson Nano 上部署 YOLO 时遇到一个典型问题:模型推理时间达标了,但功耗始终压不下去。客户要求边缘设备连续工作 8 小时以上,现有的轻量化模型在功耗上还是“奢侈”了点。手动调整了通道数、改了两次激活函数&am…...
