Redis解决缓存问题

news2024/12/24 10:20:56

目录

  • 一、引言
  • 二、缓存
  • 三、Redis缓存
  • 四、缓存一致性
    • 1.缓存更新策略
    • 2.主动更新
  • 五、缓存穿透
  • 六、缓存雪崩
  • 七、缓存击穿
    • 1.基于互斥锁解决具体业务
    • 2.基于逻辑过期解决具体业务

一、引言

在一些大型的网站中会有十分庞大的用户访问流量,而过多的用户访问对我们的MySQL数据库无疑是一种压力,不仅如此,由于MySQL自身性能的原因,面对过多的访问请求它的响应速度也会受限,这对用户的体验也会造成影响,那么我们该如何解决这些问题呢?
在这里插入图片描述

二、缓存

缓存就是数据交换的缓冲区,是存贮数据的临时地方,一般读写性能较高。我们一般会将一些用户要经常访问的数据先写入到缓存中去,当用户需要访问这些数据的时候我们直接从缓存中获取这些数据再返回给用户,这样就可以避免对数据库的大量查询,也能提高业务的效率。
在这里插入图片描述

三、Redis缓存

众所周知,redis是一款基于内存的NoSQL数据库,它的优点就是读写速度极快,那我们在项目中就可以使用redis来作为我们的缓存中间件,而在各大企业的实际开发过程中其实也都是使用redis来处理缓存相关的业务。
例如我们在一个查询商铺的业务流程中,当我们获取的前端发送来的查询某个商铺的请求之后,我们可以先在redis中查询是否有此商铺的数据,如果有,我们可以直接将redis中的数据返回给前端,如果没有,我们再去对数据库进行查询操作,如果在数据库中查询到了数据,我们先将此数据存入redis中,然后再将数据返回给前端。
在这里插入图片描述

四、缓存一致性

在我们添加了redis缓存之后虽然解决了数据库压力过大的问题,但是也会给我们带来一些新的问题,当MySQL中的数据更新之后redis中还是之前存入的旧数据,这时用户再进行访问的话就会得到旧数据,这就导致了缓存与数据库中的数据不一致的问题,基于这个问题,我们又提出了缓存的更新策略。

1.缓存更新策略

在这里插入图片描述

2.主动更新

我们在实际应用中会将各种更新策略来结合使用,而在各种更新策略中主动更新又是最复杂的一种,接下来我们就来深入研究主动更新策略的实现。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

五、缓存穿透

在这里插入图片描述
在这里插入图片描述

六、缓存雪崩

在这里插入图片描述

七、缓存击穿

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1.基于互斥锁解决具体业务

在这里插入图片描述

2.基于逻辑过期解决具体业务

在这里插入图片描述

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

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

相关文章

Linux SSH免密登录

目录 简介 创建Linux用户和用户组 配置LINUX静态IP 编辑IP映射 SSH免密登录配置 登录测试 简介 SSH(Secure shell)是可以在应用程序中提供安全通信的一个协议,通过SSH可以安全地进行网络数据传输,它的主要原理是利用非对称加密…

Libhybris之线程局部存储TLS实例(五)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 人生格言: 人生…

二十三、W5100S/W5500+RP2040树莓派Pico<Web I/O 通过网页控制板载LED灯>

文章目录 1 前言2 简介2 .1 什么是Web?2.2 Web的优点2.3 Web数据交互原理2.4 Web应用场景 3 WIZnet以太网芯片4 HTTP网络设置示例概述以及使用4.1 流程图4.2 准备工作核心4.3 连接方式4.4 主要代码概述4.5 结果演示 5 注意事项6 相关链接 1 前言 Web只是一个静态的文…

电源基础元件

文章目录 电源基础元件理想电压源理想电流源受控电源 电源基础元件 理想电压源 定义 其两端电压总能保持定值或一定的时间函数,其值与流过它的电流i无关的元件叫理想电压源 理想电压源的电压、电流关系 1.电源两端电压由电源本身决定,与外电路无关&…

桶装水订水送水app有哪些功能?

桶装水订水送水app是一款专为送水工量身打造的提供送水服务的软件,在这里,送水人员将更好的在线发布一些送水信息,在线接单等功能,极大的提高了工作效率,方便了日常生活。 系统的商户端,专为送水工日常送水…

【计算机网络】VRRP协议理论和配置

目录 1、VRRP虚拟路由器冗余协议 1.1、协议作用 1.2、名词解释 1.3、简介 1.4、工作原理 1.5、应用实例 2、 VRRP配置 2.1、配置命令 2.2、拓扑与配置: 1、VRRP虚拟路由器冗余协议 1.1、协议作用 虚拟路由冗余协议(Virtual Router Redundancy Protocol&am…

2023nacos源码解读第2集——nacos-server的启动

nacos 是一个典型的server-client中间件,server这里安装最新的nacos-server 2.3.0-BETA版本 1.docker启动nacos-server 镜像详情参考nacos-docker项目的readme ,很方便,但是官方提供的nacos-server镜像往往可能滞后,且不便于后续…

【Java 进阶篇】JQuery DOM操作:舞动网页的属性魔法

在前端的舞台上,属性操作是我们与HTML元素进行互动的关键步骤之一。而JQuery,这位前端开发的巫师,通过简洁而强大的语法,为我们提供了便捷的属性操作工具。在这篇博客中,我们将深入研究JQuery DOM操作中的属性操作&…

C语言--1,5,10人民币若干,现在需要18元,一共有多少种?

今天小编给大家分享一下穷举法的一道典型例题 一.题目描述 1,5,10人民币若干,现在需要18元,一共有多少种? 二.思路分析 总共有18块钱,设1元有x张,5元有y张,10元有z张,则有表达式:x5y10z18,穷举法最重要的…

Unity中雾效的实现方法二

文章目录 前言一、声明雾效所需要的内置变体二、在 v2f 中声明顶点传入片段中的雾效插值器三、 在顶点着色器中计算雾效采样四、在片元着色器中进行雾效颜色混合在这里插入图片描述 五、最终效果 前言 Unity中雾效的实现方法二,使用 Unity 自带的方法实现&#xff…

Spring IOC - BeanDefinition解析

1. BeanDefinition的属性 BeanDefinition作为接口定义了属性的get、set方法。这些属性基本定义在其直接实现类AbstractBeanDefinition中,各属性的含义如下表所示: 类型 名称 含义 常量 SCOPE_DEFAULT 默认作用域:单例模式 AUT…

4.CentOS7安装MySQL5.7

CentOS7安装MySQL5.7 2023-11-13 小柴你能看到嘛 哔哩哔哩视频地址 https://www.bilibili.com/video/BV1jz4y1A7LS/?vd_source9ba3044ce322000939a31117d762b441 一.解压 tar -xvf mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz1.在/usr/local解压 tar -xvf mysql-5.7.44-…

22.构造一个关于员工信息的结构体数组,存储十个员工的信息

结构体问题。构造一个关于员工信息的结构体数组,存储十个员工的信息,包括员工工号,员工工资,员工所得税,员工实发工资。要求工号和工资由键盘输入,并计算出员工所得税(所得税工资*0.2&#xff0…

微服务概览

单体架构 传统的软件应用为单体架构。尽管也是模块化逻辑,但是最终还是会打包并并部署为单体应用。最主要的原因是太复杂。并且应用扩展性低,可靠性也低。敏捷开发和部署变得无法完成。 治理办法:化繁为简,分而治之。 微服务起源…

JavaScript从入门到精通系列第三十六篇:详解JavaScript中的事件监听和事件响应

文章目录 一:什么叫事件 1:概念 2:处理这个事件 (一):鼠标单机按钮 (二):鼠标双机按钮 (三):鼠标移动 3:写法弊端 4:Dom Event 二:监听事件 1:元素事…

SpringCloud微服务:服务拆分

不同的数据库之间,如何共同调用?接下来讲讲两个数据库之间如何交互 1、微服务需要根据业务模块拆分,做到单一职责,不要重复开发相同业务 2、微服务可以将业务暴露为接口,供其它微服务使用 3、不同微服务都应该有自己独立的数据库…

中断处理机制解析

要处理中断,需要有一个中断处理函数。定义如下: irqreturn_t (*irq_handler_t)(int irq, void * dev_id);/*** enum irqreturn* IRQ_NONE interrupt was not from this device or was not handled* IRQ_HANDLED interrupt was handled by this de…

Netty实现通信框架

一、LengthFieldBasedFrameDecoder的参数解释 1、LengthFieldBasedFrameDecoder的构造方法参数 看下最多参数的构造方法 /*** Creates a new instance.** param byteOrder* the {link ByteOrder} of the length field* param maxFrameLength* the maximum len…