当前位置: 首页 > news >正文

(高频面试1)Redis缓存穿透、缓存击穿、缓存雪崩

目录

一:缓存数据

1.1 应用场景

1.2:缓存数据出现的问题

1.2.1 缓存穿透

1.2.2 解决办法

1.2.3 缓存击穿

1.2.4 解决办法

1.2.5 缓存雪崩

1.2.6 解决办法


一:缓存数据

1.1 应用场景

数据库查询结果缓存是一种常见的缓存应用场景,它通过将数据库查询的结果存储在缓存中,以便在未来的查询中快速获取这些结果,从而提高应用程序的性能。

1.将不经常更改的数据缓存起来

比如我们的菜品数据、套餐数据、菜品分类数据,这些数据是我们不会经常改变的的,我们可以通过Redis,缓存起来,减少请求到数据库的IO次数,提高性能

2.将查询结果缓存起来

经常被查询的数据可能是消费者比较喜欢的数据,我们可以将查询结果缓存起来,以便下次相同的搜索请求可以直接从缓存中获取数据,而无需再次查询数据库。

3.Redis缓存会话信息(单点登录)

为了缓解我们的服务器压力我们的不同业务可能是放在不同的服务器,为了让我们不同的服务器去认识同一个我,以确保会话在不同服务器之间共享,将登录成功创建的session存入redis中,其他关联项目模块都从该项目中获取登录的session,也就是拿redis中的登录数据。

我们缓存会话信息可以设置缓存时间,当我们的用户长期没有操作时,删除会话信息,让用户重新登录

1.2:缓存数据出现的问题

1.2.1 缓存穿透

一直去数据库请求不存在的数据,缓存中也存不上数据(Id不存在,或者伪造Id)

1.2.2 解决办法

(1)我们通过参数校验,拦截掉不合法的请求

(2)我们可以自定义一个map(数据量较少的时候),先判断map中存在不存在,存在就看缓存,不存在就直接拒绝该请求

(3)布隆过滤器

布隆过滤器底层采用bit数组来存储数据,默认是0,初始化,存在key进行一些列的hash,每个key都会计算出多个位置,把这些位置设置成1,之后如果我们的请求过来请求,用相同的hash去计算位置,如果匹配的多个位是1,说明元素存在,可以访问,不存在拒绝请求

(4)缓存空数据

1.2.3 缓存击穿

我们的缓存热点数据到期,缓存数据失效,同一时间访问的数据量过大,同时访问数据库导致宕机

1.2.4 解决办法

我们对每个请求加锁,防止相同产品的多个请求同时访问数据库

我们可以在过期之前,刷新我们的过期时间

不设置过期时间(预热,手动删除)

1.2.5 缓存雪崩

缓存雪崩:

1.2.6 解决办法

多个热门key同时失效

  1. 我们可以在过期时间戳加上一个随机数,防止我们的相同的key同时失效
  2. 我们可以通过哨兵模式,避免单结点故障,导致整个服务不可用,master宕机了,slave服务器自动升级为master服务
  3. 服务降级:我们配置默认数据,当我们的规定时间内,获取数据失败次数达到我们设置的值,就全局开关打开,去配置中心获取默认数据,如果一分钟内可以获取到两次数据,则把全局开关关闭(限流)

相关文章:

(高频面试1)Redis缓存穿透、缓存击穿、缓存雪崩

目录 一:缓存数据 1.1 应用场景 1.2:缓存数据出现的问题 1.2.1 缓存穿透 1.2.2 解决办法 1.2.3 缓存击穿 1.2.4 解决办法 1.2.5 缓存雪崩 1.2.6 解决办法 一:缓存数据 1.1 应用场景 数据库查询结果缓存是一种常见的缓存应用场景&a…...

c++推箱子小游戏

上代码: #include <stdio.h> #include <stdlib.h> #include <conio.h>int map[2][7][8] {//0:空的 1:■ :墙//3&#xff1a;☆ 4&#xff1a;★ //目的地和箱子//5&#xff1a;※ //人//7:⊙ //目的(3)和箱子(4)在一起//8&#xff1a;※ //人(5…...

SpringMVC:从入门到精通

一、SpringMVC是什么 SpringMVC是Spring提供的一个强大而灵活的web框架&#xff0c;借助于注解&#xff0c;Spring MVC提供了几乎是POJO的开发模式【POJO是指简单Java对象&#xff08;Plain Old Java Objects、pure old java object 或者 plain ordinary java object&#xff0…...

jmeter 数据库连接配置 JDBC Connection Configuration

jmeter 从数据库获取变量信息 官方文档参考&#xff1a; [jmeter安装路径]/printable_docs/usermanual/component_reference.html#JDBC_Connection_Configuration 引入数据库连接&#xff1a; 将MySQLjar包存放至jemter指定目录&#xff08;/apache-jmeter-3.3/lib&#xff09…...

TVC广告片制作成本多少

电视是广告传播的主要媒介之一&#xff0c;具有广泛的受众群体和较高的覆盖率。通过在电视上播放广告片&#xff0c;企业可以将产品或者服务的信息传达给大量潜在客户&#xff0c;提高知名度和曝光度。接下来由深圳TVC广告片制作公司老友记小编从以下几个方面浅析制作一条TVC广…...

【Express.js】代码规范

代码规范 编程规范&#xff0c;对于一个优秀的项目是不可或缺的&#xff0c;有了良好的代码规范&#xff0c;有益于项目的维护与拓展。 命名规范 命名的第一要义是明了&#xff0c;要让阅读者看到命名就能大概猜测出其意义或用处。 以用户身份&#xff08;userRole&#xff…...

Vue2+Vue3基础入门到实战项目(前接六 副线一)—— 面经 项目

day1 接口文档地址&#xff1a;https://www.apifox.cn/apidoc/project-934563/api-20384515 一、项目功能演示 1.目标 启动准备好的代码&#xff0c;演示移动端面经内容&#xff0c;明确功能模块 2.项目收获 二、项目创建目录初始化 vue-cli 建项目 1.安装脚手架 (已安装…...

QT tcpserver

#include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this);// 服务端有QTcpServer库&#xff0c;封装了监听操作server new QTcpServer();// 直接监听&#xff0c;内部根…...

Android adb shell svc 知识详解

adb shell svc 详解 文章目录 adb shell svc 详解一、svc 常用命令&#xff1a; 二、svc 命令和使用示例&#xff1a;查看系统是否安装了svc1、svc2、svc help3、svc power svc wifi has been migrated to WifiShellCommand,simply perform translation to cmd wifi set-wifi-e…...

Debian12系统下LAMP环境中Nubuilder4.5的安装

一、环境搭建 按照官方的说法&#xff0c;Apache2和Nginx都可以的&#xff0c;实际上&#xff0c;你最好直接按照 Mariadb\Apache2\Php8.2 这个顺序&#xff0c;搭建LAMP环境较好。不然各种调试&#xff0c;还不一定能够成功。 相关搭建方法&#xff0c;属于一般操作&#xf…...

百度超级链BaaS服务平台调研

目录 一、菜单功能1.1、在线版1.2、服务版 二、其他说明2.1、服务平台的部署方式2.2、混合部署 百度超级链XuperChain管理平台文档地址&#xff1a;https://xuper.baidu.com/n/doc#/c8737c7b/1_0_0/c8737c7b 一、菜单功能 1.1、在线版 在线版功能稍多。 菜单子菜单/功能点子…...

计算机网络之TCP/IP协议第二篇:OSI参考模型详解

文章目录 写给自己的话 一:协议分层与OSI参考模型 二:通过对话理解分层 三:OSI参考模型...

Linux内核分析与应用2-内存寻址

本系列是对 陈莉君 老师 Linux 内核分析与应用[1] 的学习与记录。讲的非常之好&#xff0c;推荐观看 留此记录&#xff0c;蜻蜓点水,可作抛砖引玉 2.1 内存寻址 数据连续存储和选择读取思想,是目前我们使用的几乎所有机器运行背后的灵魂 计算机体系结构中的核心问题之一,就是如…...

苍穹外卖 day12 Echats 营业台数据可视化整合

苍穹外卖-day12 课程内容 工作台Apache POI导出运营数据Excel报表 功能实现&#xff1a;工作台、数据导出 工作台效果图&#xff1a; 数据导出效果图&#xff1a; 在数据统计页面点击数据导出&#xff1a;生成Excel报表 1. 工作台 1.1 需求分析和设计 1.1.1 产品原型 工作台是系…...

代码随想录算法训练营day45|70. 爬楼梯(进阶版)|322. 零钱兑换|279.完全平方数

70. 爬楼梯(进阶版) 一步一个台阶&#xff0c;两个台阶&#xff0c;三个台阶&#xff0c;…&#xff0c;直到 m个台阶。问有多少种不同的方法可以爬到楼顶呢&#xff1f; 1阶&#xff0c;2阶&#xff0c;… m阶就是物品&#xff0c;楼顶就是背包。 每一阶可以重复使用&#…...

数据结构和算法(3):列表

列表是一种线性数据结构&#xff0c;它允许在其中存储多个元素&#xff0c;并且可以动态地添加或删除元素。 循秩访问 可通过重载下标操作符&#xff0c;实现寻秩访问 template <typename T> // assert: 0 < r < size T List<T>::operator[](Rank r) cons…...

使用playright自动下载vscode已安装插件

import os import re import subprocess import traceback from playwright.sync_api import Playwright, sync_playwright, expect# 执行CMD命令 cmd_command "code --list-extensions" # 获取已安装扩展列表 process subprocess.Popen(cmd_command, stdoutsubpr…...

单片机语言实例:2、点亮数码管的多种方法

一、共阳数码管静态显示 程序实例1&#xff1a; #include<reg52.h> //包含头文件&#xff0c;一般情况不需要改动&#xff0c; //头文件包含特殊功能寄存器的定义void main (void) {P10xc0; //二进制 为 1100 0000 参考数码管排列&#xff0c;//可以得出0对应的段点…...

C#学习 - 初识类与名称空间

类&#xff08;class&#xff09;& 名称空间&#xff08;namespace&#xff09; 类是最基础的 C# 类型&#xff0c;是一个数据结构&#xff0c;是构成程序的主体 名称空间以树型结构组织类 using System; //前面的using就是引用名称空间 //相当于C语言的 #include <..…...

Python爬取电影信息:Ajax介绍、爬取案例实战 + MongoDB存储

Ajax介绍 Ajax&#xff08;Asynchronous JavaScript and XML&#xff09;是一种用于在Web应用程序中实现异步通信的技术。它允许在不刷新整个网页的情况下&#xff0c;通过在后台与服务器进行数据交换&#xff0c;实时更新网页的一部分。Ajax的主要特点包括&#xff1a; 异步通…...

JavaScript的面向对象

一、认识对象 1.概述 对象&#xff08;object&#xff09;是 JavaScript 语言的核心概念&#xff0c;也是最重要的数据类型。 什么是对象&#xff1f;简单说&#xff0c;对象就是一组“键值对”&#xff08;key-value&#xff09;的集合&#xff0c;是一种无序的复合数据集合…...

MybatisPlus 核心功能 条件构造器 自定义SQL Service接口 静态工具

MybatisPlus 快速入门 常见注解 配置_软工菜鸡的博客-CSDN博客 2.核心功能 刚才的案例中都是以id为条件的简单CRUD&#xff0c;一些复杂条件的SQL语句就要用到一些更高级的功能了。 2.1.条件构造器 除了新增以外&#xff0c;修改、删除、查询的SQL语句都需要指定where条件。因此…...

TSN时间敏感网络

目录 时间敏感网络介绍 子协议介绍 时间同步 IEEE802.1AS 调度和流量整形 IEEE802.1Q IEEE802.1Qbv IEEE802.1cr IEEE802.1Qbu IEEE802.1Qch IEEE802.1Qav IEEE802.1Qcc 纠错机制与安全 IEEE802.1Qci IEEE802.1CB IEEE802.1Qca 参考 时间敏感网络介绍 TSN(Tim…...

【2023年数学建模国赛】C题解题思路

第一问 要求分析分析蔬菜各品类及单品销售量的分布规律及相互关系。该问题可以拆分成三个角度进行剖析。 1&#xff09;各种类蔬菜的销售量分布、蔬菜种类与销售量之间的关系&#xff1b;2&#xff09;各种类蔬菜的销售量的月份分布、各种类蔬菜销售量与月份之间的相关关系&a…...

5分钟 将“.py”文件转为“.pyd”文件

代码&#xff1a; from distutils.core import setup from distutils.extension import Extension from Cython.Build import cythonize import osfile_list os.listdir("./") extensions [] for file in file_list:if file.endswith(".py") and file !…...

python 入门到精通(一)

文章目录 1.使用pycharm进行第一个程序的编写2.python基础语法篇2.1 常用的值类型2.2 注释2.3 变量2.4 数据类型2.5 数据类型转换2.6 什么是标识符2.7 运算符2.8 字符串扩展2.8.1 字符串拼接2.8.2 字符串格式化2.8.3 格式化的精度控制2.8.4 字符串格式化 - 快速写法2.8.5 字符串…...

AJAX (Asynchronous JavaScript And XML)异步的JavaScript 和 XML

1、概念 Asynchronous JavaScript And XML 异步的JavaScript 和 XML异步和同步&#xff1a;客户端和服务器端相互通信的基础上 同步&#xff1a;客户端必须等待服务端的响应。在等待的期间客户端不能做其他操作。异步&#xff1a;客户端不需要等待服务器端的响应。在服务器…...

华为云云耀云服务器L实例评测|安装Java8环境 配置环境变量 spring项目部署 【!】存在问题未解决

目录 引出安装JDK8环境查看是否有默认jar上传Linux版本的jar包解压压缩包配置环境变量 上传jar包以及运行问题上传Jar包运行控制台开放端口访问失败—见问题记录关闭Jar的方式1.进程kill -92.ctrl c退出 问题记录&#xff1a;【!】未解决各种方式查看端口情况联系工程师最后排查…...

安卓多渠道打包(五)360加固walle多渠道打包

背景&#xff1a; 1、360加固宝&#xff0c;签名收費了&#xff0c;脚本上传加固也针对特定帐号才可实现。 内容 本文将会分享安卓项目中&#xff0c;使用360加固&#xff0c;再用walle签名&#xff0c;产出多渠道加固包的全流程。 环境 win10 jdk11 as2022 gradle7.5 最…...

Jmeter 实现 mqtt 协议压力测试

1. 下载jmeter&#xff0c;解压 https://jmeter.apache.org/download_jmeter.cgi 以 5.4.3 为例&#xff0c;下载地址&#xff1a; https://dlcdn.apache.org//jmeter/binaries/apache-jmeter-5.4.3.zip linux下解压&#xff1a; unzip apache-jmeter-5.4.3.zip 2. 下载m…...

有哪些做app的网站/武汉网络推广seo

假设有 ABC 三个人通信&#xff0c;则需要事先为三个人分配不同的码片向量&#xff0c;码片向量必须满足&#xff1a; 码片向量的规范化内积为 1不同人之间的码片向量正交 例如&#xff1a; A (1, 1, 1, 1)B (1, 1, -1, -1)C (1, -1, 1, -1) 发送数据时&#xff1a; 将码片…...

用微信公众平台做分类广告网站/网站推广的渠道有哪些

我正在从多个Web服务器负载很重的情况下运行memcached服务器.在调查一些奇怪的应用程序级行为时,我们发现memcached框中的netstat -s显示了很多“由于意外数据而重置的连接”.在负载下,该值每秒上升几百.这是什么意思,我能做些什么呢&#xff1f;输出示例&#xff1a;Ip:147533…...

网站flash客服/甲马营seo网站优化的

1、打开Auto2、标准菜单有几十种工具栏&#xff0c;默认情况下会出现的顶部工具栏有标准工具栏&#xff0c;样式工具栏&#xff0c;特性工具栏&#xff0c;两侧有绘图工具栏及修改工具栏3、我们移动鼠标&#xff0c;将光标放在任一个工具栏的非标题区&#xff0c;然后右键点击4…...

深圳高端网站建设公司/搜索引擎优化的七个步骤

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 安全员-A证&#xff08;山东省-2021版&#xff09;考试资料是安全生产模拟考试一点通总题库中随机出的一套安全员-A证&#xff08;山东省-2021版&#xff09;&#xff0c;在公众号安全生产模拟考试一点通上点击安全员…...

公司及企业如何建立自己的购物网站/高质量外链购买

直接上导图&#xff0c;导图打开后可以缩放交互的&#xff0c;里面的链接都是可以点击跳转的 电脑上可以直接点这个链接&#xff1a;vue资源整理-思维导图版 转载于:https://juejin.im/post/5a45a2d2f265da4325299d58...

重庆网站建设搜外/百度一下你就知道了百度

文件类型在程序运行时&#xff0c;程序本身和数据一般都存在内存中&#xff0c;当程序运行结束后&#xff0c;存放在内存中的数据被释放。 如果需要长期保存程序运行所需的原始数据&#xff0c;或程序运行产生的结果&#xff0c;就必须以文件形式存储到外部存储介质上。 文件一…...