Redis 缓存预热、雪崩、穿透、击穿

  1. 缓存预热
    1. 缓存预热是什么
      1. 缓存预热就是系统上线后,提前将相关的缓存数据直接加载到缓存系统。避免在用户请求的时候,先查询数据库,然后再将数据缓存的问题!用户直接查询事先被预热的缓存数据!
    2. 解决方案
      1. 使用 @PostConstruct 、定时任务、手动处理 提前将数据设置到缓存中

  2. 缓存雪崩
    1. 缓存雪崩是什么
      1. 缓存雪崩就是瞬间过期数据量太大,导致对数据库服务器造成压力

    2. 发生场景

      1. redis 主机挂了, Redis全盘崩溃,偏硬件运维
      2. redis 中有大量key 同时过期大面积失效,偏软件开发
    3. 解决+预防方案
      1. redis 中 key 设置为永不过期 or 过期时间错开
      2. redis 缓存集群实现高可用
        • 主从 + 哨兵
        • Redis 集群
        • 开启Redis 持久化机制 aof / rdb,尽快恢复缓存集群
      3. 多缓存结合预防雪崩
        • ehcache 本地缓存 + redis缓存
      4. 服务降级
        • Hystrix 或者 sentinel 限流 & 降级
  3. 缓存穿透
    1. 缓存穿透是什么
      1. 缓存穿透 就是请求去查询一条数据,先查redis,redis里面没有,再查mysql,mysql里面无,都查询不到该条记录,但是请求每次都会打到数据库上面去,导致后台数据库压力暴增
    2. 解决方案
      1. 空对象缓存或者缺省值, 如果发生缓存穿透,可以针对要查询的数据,在Redis里存一个和业务部门商量后确定的缺省值 比如 零、负数、defaultNull等
      2. 使用布隆过滤器,将key放到布隆过滤器中,请求来了用布隆过滤器判断key是否存在,如果存在则走后续逻辑,不存在则直接返回
  4. 缓存击穿
    1. 缓存击穿是什么
      1. 缓存击穿就是大量请求同时查询一个key时,此时这个key正好失效了,就会导致大量的请求都打到数据库上面去,也就是热点key突然都失效了,MySQL承受高并发量
    2. 解决方案
      1. 差异失效时间,对于访问频繁的热点key,干脆就不设置过期时间
      2. 互斥更新,采用双检加锁
  5. 总结
    1.  

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

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

相关文章

LeetCode旋转图像

题目描述: 给定一个 n n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。 你必须在 原地 旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要使用另一个矩阵来旋转图像。 示例 1: 输入:matrix [[1,2,3]…

opencv实战项目七:帧差法获取运动车辆蒙版

文章目录 一、简介二、实现方案三、算法实现步骤3.1 取出视频中间帧3.2 帧差法形成运动蒙版: 四、代码整体实现五:效果 一、简介 在智能交通系统中,车辆检测是一项重要的技术,而通常情况下一张图片中无用信息过多会带来额外的计算…

Linux--C语言之循环结构

文章目录 一、循环结构(一)循环的概念(二)循环的类型(三)循环的构成(四)当型循环的实现while死循环 (五)for...总结死循环 (七)循环实…

机器学习——逻辑回归(学习笔记)

目录 一、认识逻辑回归 二、二元逻辑回归(LogisticRegression) 1. 损失函数 2. 正则化 3. 梯度下降 4. 二元回归与多元回归 三、sklearn中的逻辑回归(自查) 1. 分类 2. 参数列表 3. 属性列表 4. 接口列表 四、逻辑回归…

大厂面试题分享第一期

大厂面试题分享第一期 Redis持久化方式AOF优缺点RDB优缺点 如何保证Redis和Myql的一致性索引下推输入url到浏览器发生了什么ReentranLock底层原理SpringBoot 的启动流程 Redis持久化方式 Redis提供了两种主要的持久化机制,分别是AOF(Append-Only File&a…

Python 数据可视化,怎么选出合适数据的图表

数据可视化最佳实践 1. 引言:为什么数据可视化最佳实践很重要 数据可视化是数据分析和决策过程中不可或缺的一部分。通过有效的可视化,复杂的数据可以转化为易于理解的信息,从而帮助观众快速做出正确的判断。然而,糟糕的可视化可…

单片机IO灌入5V电压导致其他IO电压测量到大于供电电压问题

最近用GD32F103RCT6做项目,用了3个485收发器,都是直接接在单片机IO上的。 485收发器是5V供电的,这个时候就出现5V电平和3.3V电平兼容的问题了。 一开始只用了PA10、PC11这两个串口,他俩是兼容5V的,从手册可以看出IO最…

企业源代码也需要加密!十款好用的源代码加密软件排行榜

在当今竞争激烈的商业环境中,企业的源代码是其核心资产之一。为了保护这些宝贵的知识产权不被泄露,源代码加密成为了众多企业的重要举措。2024 年,市面上出现了众多功能强大的源代码加密软件。接下来,就让我们一同来探索十款备受好…

DockerCompose编排Nginx+Mysql并实现Nginx配置Mysql(TCP协议)负载均衡

场景 Nginx配置实例-负载均衡实例:平均访问多台服务器: Nginx配置实例-负载均衡实例:平均访问多台服务器_我想访问五个服务器的信息用nginx怎么做-CSDN博客 以上实现Nginx的http协议的负载均衡,如果使用Nginx实现TCP协议的负载…

Java的JVM中的概念之——新生代和老年代

JVM新生代和老年代是JVM中非常重要的概念,那么他们在JVM中扮演者什么样的角色和含义呢? 在Java虚拟机(JVM)的垃圾回收(GC)中,内存被分为不同的区域,其中两个主要区域是新生代&#…

PHP餐厅点餐系统小程序源码

🍽️【餐厅点餐新纪元,点餐系统让用餐更便捷!】📱 🔍 一键浏览,菜单尽在掌握 📱 走进餐厅,无需再担心找不到服务员或菜单被抢光!餐厅点餐系统让你轻松扫描桌上的二维码…

HarmonyOS Developer之图片帧动画播放器

创建image-animator组件 在pages/index目录下的hml文件中创建一个image-animator组件,css文件中编写组件样式,js文件中引用图片。 设置image-animator组件属性 添加iteration(播放次数)、reverse(播放顺序&#xf…

LVS原理及实例

目录 LVS原理 LVS概念 lvs集群的类型 lvs-nat 解释 传输过程 lvs-dr 解释 传输过程 特点 lvs-tun LVS(Linux Virtual Server)常见的调度算法 防火墙标记(Firewall Marking)结合轮询调度 实战案例 lvs的nat模式配置 …

使用Linux实现FTP云盘1

关于FTP服务器 FTP(文件传输协议)服务器是在互联网上提供文件存储和访问服务的计算机,它们依照FTP 协议提供服务。 FTP是File Transfer Protocol(文件传输协议)。 程序运行,服务端不断接收客户端指令,服务 端可同时处…

提取含有特定字符的行和列grep函数(含有替换)

目录 ①grep提取含有特定字符的列 ②grep提取含有特定字符的行 R语言进行字符的替换和删减gsub,substr函数R语言进行字符的替换和删减gsub,substr函数_r语言数据框字符替换-CSDN博客 ①grep提取含有特定字符的列 在一个dataframe中,需要提…

Element学习(axios异步加载数据、案例操作)(5)

1、这次学习的是上次还未完成好的恶element案例,对列表数据的异步加载,并渲染展示。 ——>axios来发送异步请求 (1) (2)在vue当中安装axios (注意在当前的项目目录,并且安装完之后…

Xcode 在原生集成flutter项目

笔者公司有一个从2017年就开始开发的iOS和安卓原生项目,现在计划从外到内开始进行项目迁徙。 1》从gitee拉取flutter端的代码;(Android报错Exception: Podfile missing) 2》替换Xcode里的cocopods里Podfile的路径 然后报警 然后…

Linux从0到1——进程池

Linux从0到1——进程池 1. 进程池的概念2. 进程池实现思路3. 进程池的代码实现3.1 创建管道,创建子进程3.2 封装任务3.3 Work接口3.4 发送任务3.5 回收资源,关闭管道(重点)3.6 改造CreatChannels接口 4. 完整代码 1. 进程池的概念…

ECMAScript6模板字面量:反引号、${}占位符的使用

ECMAScript 6 中引入了模板字面量,主要通过多行字符串和字符串占位符对字符串进行增强操作。如下: //使用ECMAScript6模板字面量拼接字符串,例如:2024年8月12日 15:38:28 星期一 let dateRet ${Year}年${Month}月${Dates}日 ${H…

lvs、集群

1.集群和分布式 当多个用户当用户访问一个服务器时,服务器server1可能就会崩,假如这时候我们新加一个服务器server2来缓解server1的压力,那么就需要一个调度器lvs来分配,所以现在就是用户的访问就需要通过调度器之后到达服务器&a…