缓存常见问题

news/2025/9/19 21:29:10/文章来源:https://www.cnblogs.com/breezyTop/p/19101735

缓存常见问题

缓存穿透

概念:
查询缓存中没有,数据库也没有的数据,大量的请求都穿透了缓存层直达数据库,导致数据库因压力过大而宕机。
本质是一种人为攻击手段

解决方案:

  • 数据库不存在数据时,存放一个临时数据到缓存中

  • 布隆过滤器

    在查询缓存时,会先经过布隆过滤器,根据Redis的Key进行Hash并取模。
    根据取值后对应的位数组下标上值判断:
    都是1,则说明该数据在缓存中有可能存在,去缓存中查询
    至少有一个为0,表示该数据在缓存中不存在,直接返回

缓存击穿

概念: 某一个热点数据的key突然过期,造成大量请求直达数据

解决方案:

  • 数据永不过期(定时任务,凌晨流少的时候更新缓存)
  • 接口限流或降级
  • 分布式锁
  • 缓存预热

雪崩

概念: 缓存中在同一个时间点有大量的key同时过期,请求查询缓存中没有,直达数据库

解决方案:

  • 分布式锁
  • 热点数据永不过期
  • 随机过期时间

缓存一致性

缓存一致性问题,也叫双写一致性问题: 写数据库+写缓存 如何做到同步

  • 强一致性 上锁 性能差
  • 弱一致性 最终一致性
    • 先更新数据库,再删除缓存
    • 延迟双删 删除-写入-延迟片刻再删除
    • Canal+MQ

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

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

相关文章

ctfshow 电子取证

这里的电子取证应该说算入门难度,不是很难,感兴趣的新手可以了解一下JiaJia-CP-1 先把题目文件下载下来看到是raw后缀,常见的内存镜像的后缀,使用volatility打开(这边真心建议使用kali中的volatility打开,windows…

插入排序与希尔排序 - 实践

插入排序与希尔排序 - 实践2025-09-19 21:28 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; …

最新IDEA 2025 专业版破解永久破解教程(附资源)intellij IDEA

一、intellij idea软件下载 [软件名称]:intellij idea 克网盘下载链接:https://pan.quark.cn/s/2af0fb5ec2e5 迅雷文件分享:Intellij IDEA 2025链接:https://pan.xunlei.com/s/VO_X5mj3eocLmO5BuL5ztWKhA1?pwd=uw…

AtCoder ABC423F - Loud Cicada 题解 容斥原理

题目大意: 问 \([1, Y]\) 范围内有多少个数是:\(A_1, A_2, \ldots, A_N\) 中恰好 \(K\) 个数的倍数。 解题思路: 容斥原理。 思路完全来自 StelaYuri大佬的博客。 示例程序: #include <bits/stdc++.h> using…

1756:八皇后

题目 总时间限制: 1000ms 内存限制: 65536kB 描述 会下国际象棋的人都很清楚:皇后可以在横、竖、斜线上不限步数地吃掉其他棋子。如何将8个皇后放在棋盘上(有8 * 8个方格),使它们谁也不能被吃掉!这就是著名的八皇…

矩阵置零-leetcode

题目描述 给定一个 *m* x *n* 的矩阵,如果一个元素为 0 ,则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。 示例 1:输入:matrix = [[1,1,1],[1,0,1],[1,1,1]] 输出:[[1,0,1],[0,0,0],[1,0,1]]示例 2:输…

重新开始配置hadoop等

重新开始配置hadoop等1

IIS 部署 asp.net core 实用的方案时,出现500.19、500.31问题的解决方案

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

嘉立创常用快捷键

在EDA设计中使用快捷键能帮我们快速完成设计, 本人使用的是嘉立创EDA专业版,快捷键设置可以打开设置如下图打开之后我们可以对快捷键进行调整设置。附常用快捷键: 基础操作 空格键:旋转所选图形。 R:旋转图形。 X:…

02020402 EF Core基础02-EF Core数据的增删改查

02020402 EF Core基础02-EF Core数据的增删改查 1. EF Core数据的增删改查(视频3-3)创建.NET Core控制台项目,项目文档如下。// Book.cs using System;namespace EF CoreDemo {public class Book{public long Id {…

conda 无法安装依赖 CondaHTTPError: HTTP 000 CONNECTION FAILED for url: tsinghua tencentaliyun

在成功安装conda软件后, 尝试安装python 虚拟环境 或 python 依赖包,但报CondaHTTPError,查阅网上资料说:将下载源更换成 国内源(tsinghua/aliyun/tencent),但下载时依旧报相同的错. PS C:\Users\xxx> conda cr…

牛客刷题-Day2

动态规划1:线性dp、背包问题,区间 https://ac.nowcoder.com/acm/contest/24213?from=acdiscuss牛客刷题-Day2 今日题目:\(1006-1010\) 1006 免费馅饼 题目描述 \(SERKOI\) 最新推出了一种叫做“免费馅饼”的游戏:…

实用指南:kafka 原理详解

实用指南:kafka 原理详解2025-09-19 21:06 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; f…

图解支付系统账务系统核心设计 - 智慧园区

支付系统的稳定运行离不开账务系统的支撑,其需精准处理资金流与信息流,涵盖账户分类、复式记账、清结算对账等核心模块,深入理解其设计逻辑,是搭建可靠支付架构的关键。在前一篇的“图解支付系统账务系统设计入门”…

网络编程-HTTP - 详解

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

vulnhub(持续更新)

内网渗透的靶场,复现cve也挺有意思的vulnhub Earth 一、信息收集二、端口扫描三开始渗透发现直接访问貌似访问不进去,仔细查看nmap扫描结果发现两条dns记录,可以知道192.168.44.133会被dns服务器解析为earth.local,…

小爱同学连接电脑进行交互 教程

所需材料 我们希望整个过程的材料尽量简化。以下是必备的设备:小爱音箱(如 Redmi 音箱 Play) 一台支持 Docker 的设备(如小主机,NAS,或电脑) 你需要控制的电脑实现流程 整个实现路径如下:传输指令:我们通过小…

网络流初步浅谈:EK与Dinic

\(\LARGE 网络流这么美妙的东西\) \(\LARGE 肯定是要好好学它的\)主要还是为了搞这个二分最大匹配去学的 匈牙利算法不太适合我,就来进阶一下(先来看最大流最大流是解决从源点到汇点的最大流量,这是个网络流中几乎最…

Spring框架事件驱动架构核心注解之@EventListener - 指南

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

FreeRTOS SMP 资料收集

FreeRTOS SMP 资料收集1、 官方demo FreeRTOS/FreeRTOS-Community-Supported-Demos