Redis 初识:从单体架构到分布式架构的演进

CMU动作捕捉数据集实战:从AMC文件到Python可视化的完整流程 本文提供了CMU动作捕捉数据集的完整实战指南,详细解析了AMC文件格式,并对比了MATLAB转换、Python原生解析及转换为BVH格式三种数据解析策略。重点介绍了如何构建Python数据处理与可视化管道,包括将数据转换为Pandas DataFrame、绘制时间序列与相关性热力图,以及实现3D骨架动画,帮助开发者高效利用这一经典动作捕获数据集进行运动分析与模型训练。 阅读详情

前言

在学习 Java 后端开发的过程中,我们已经接触到了 MySQL 数据库,也逐渐了解了 Spring Boot 如何接收用户的 HTTP 请求、处理业务逻辑以及访问数据库。

但是,随着网站用户数量不断增加,后端系统需要处理的请求也会越来越多。

这时,我们就需要考虑几个问题:

  • 如何让后端更快地读取数据?

  • 当数据库需要处理大量请求时,应该怎么办?

  • 如果一台服务器的性能不够,能不能增加服务器?

  • 多台服务器如何共同完成一个系统的工作?

这些问题就涉及我们接下来要学习的两个重要知识:Redis    和  分布式系统。

一,什么是Redis

Redis是一个开源的,基于内存的数据存储系统,可以理解为专门用来快速存储数据的数据库,那什么是基于内存存储:计算机的数据可以存储在不同的位置(内存和硬盘),内存:通畅访问速度快,但是容量小,断电后普通内存中的数据会丢失;硬盘:访问速度较慢,但是容量大,并且能保证在断电后保存数据;Redis就是在内存中进行数据读写的,这也是高性能的体现

二,Redis和MySQL的对比

他和我们学习的MySQL不大一样,MySQL是使用表结构保存数据,而Redis是通过键值对的形式存储的

两者的主要区别如下:

对比MySQLRedis
数据组织方式关系型表结构Key-Value 等数据结构
主要读写位置内存缓冲区与磁盘内存
访问性能适合复杂查询和可靠的数据管理非常适合快速读写
数据持久化以持久化存储为核心支持持久化,但取决于配置
常见作用保存业务数据缓存热点数据、快速数据访问

一般在实际开发中是MySQL跟Redis一起配合使用的,因为各有优缺点的

三,为什么需要Redis

例如用户访问一个电商网站,最开始的访问流程就是打开页面,然后spring boot接收http请求,查询MySQL,然后MySQL返回商品数据,spring boot再返回响应,最终用户就可以看到商品了,但是有一个问题就是我们一些热门的商品,查询的结果一般都是一样的,都是那几个热门的,那为什么还需要每次都来重新访问一边MySQL呢,因为在实际业务中,20%的热门商品往往承担了80%的访问量,也就是二八原则,所以如果当我们将这些热门的数据保存在一个读取速度更快的地方,那就可以避免多次没必要的查询,也就引出了缓存思想

什么是缓存:缓存可以理解为是将经常访问的数据保存在一个访问速度更快的地方,以便下一次直接获取,因此我们Redis就承担一部分高频的数据读取请求,MySQL负责保存重要的业务数据,然后两个进行配合,虽然也会引发一些问题,例如数据的同步性,我MySQL里更新了数据,但是我Redis还是原来的,这些问题后面会讲到

四,什么是单机架构

单机架构顾名思义就是一台主机承担整个系统的工作,就拿电商网站举例,我们后端一般是有两个重要的部分组成的,应用服务(接受请求,我们前面学习到的spring boot就可以拿来用来应用服务开发)以及数据库服务(保存数据),这两个在软件功能上面是两个不同的部分,但是在单机架构中,他们可以同时运行在一台主机上,一般用于访问量不是很高的情况,那单机架构存在什么问题呢:随着用户的不断增多,我们一台主机需要完成的任务也就更多,但是一台主机的硬件资源是有限的,就比如CPU,内存,硬盘,网络,请求过于多了,就会出现争抢资源的情况,响应速度也就大打折扣了,那如何进行改进一种是升级硬件,一种是优化软件

资源作用
CPU执行计算和处理任务
内存保存程序运行所需的数据
硬盘持久化保存数据
网络发送和接收数据

升级硬件

例如增加CPU的核心数,增大内存,换更好的网络带宽,但是还是无法避免一台主机的升级不可能无限的升级,并且不断升级的情况下,成本也更高了

优化软件

就是程序上减少一些不必要的多余的计算,提高资源的利用率,但是软件优化同样存在着上限,并且难度也是很大的

介于上面的情况,我们引出了分布式架构   

五、什么是分布式系统?

可以理解为是将系统中的计算,存储或其他任务分配到多台相互连接的计算机上,由他们共同协作完成整体工作

第一步:应用服务器与数据库服务器分离

就像我们刚刚讲的电商网站,我们可以将应用服务跟数据库服务放在不同的服务器上,这样应用服务器只要负责处理请求跟执行代码,数据库服务器主要负责数据存储以及数据库查询,因为这两个服务对于硬件资源需求不同,前者可能需要更多的cpu以及内存资源,后者需要更多的内存,磁盘空间等,这样布置就可以减少资源的竞争,那这样分离之后,问题真的解决了吗?并没有,因为请求还是在同一台设备上,假设我们用户激增,cup跟内存资源就会达到瓶颈,那我们很容易就可以想到说增加一台应用服务器,让两台服务器一起共同的处理请求,现在就会变成这样

这样可能就会出现一个新问题,请求应该发给哪一个服务器,这里提到了一个负载均衡

什么是负载均衡?

负载均衡的作用就是将进入系统的请求,按照一定的策略分配给不同的服务器进行处理,这里面是有一定的算法以及方式的

总结

基于上面的这些升级硬件,软件,引入多台主机,分布式以及负载均衡机制,我们就能很好的处理更多的请求数据了

那总结一下MySQL以及Redis都能做什么

能力

MySQL

Redis

独立进程运行

✅

✅

通过网络访问

✅

✅

多台服务器共同连接

✅

✅

不同进程共享数据

✅

✅

跨主机读取和修改数据

✅

✅

快速处理简单的内存数据操作

可以,但不是主要设计重点

特别擅长

复杂 SQL 查询与关系型数据管理

特别擅长

不擅长

因此,跨进程通信、网络访问、数据共享,都不是 Redis 独有的能力。只是他们的适用场景不一样,那种场景可以发挥Redis真正的实力:在多个服务需要频繁访问共享数据的场景中,Redis 的内存访问性能和专门的数据操作能力,可以发挥很大的作用

华为OD机考双机位C卷 - 评委评分 (Java & Python& JS & C/C++ & GO ) 华为OD机考双机位C卷 - 评委评分 (OD上机考试双机位C卷)。提供在线OJ刷题。Java、C++、Python、GO语言、C语言、JavaScript题解,并提供完整思路讲解。 阅读详情

相关推荐

VESC电调高级调参指南:电机校准与性能优化实战解析

本文详细解析了VESC电调的高级调参方法,包括电机校准与性能优化实战技巧。从基础参数设置到高级机械参数优化,再到动态性能调优,提供了全面的调参指南。特别针对电机类型、功率设置、电池参数配置等关键环节给出实用建议,帮助用户充分发挥VESC电调的性能潜力。

weixin_30772105的博客 196

从单机架构到分布式:Redis为何成为架构升级的关键一环?

本文是Redis系列的开篇先导,将采取循序渐进的方式来讲解,不会深入Redis的具体命令和配置,而是聚焦于回答一个根本问题:我们的架构为什么会走到需要Redis这一步?让我们从最初的起点开始...(温馨提示,本文文字内容较多,建议收藏下来反复学习喔)

2301_81073317的博客 1万+

如何设计一个低代码平台

近些年来,低代码发展火热,各种低代码平台如雨后春笋纷纷崛起,这些平台各定位不同,优劣不同,用户的选择空间很大。那么,如果用户想从零开始设计一个低代码平台,该如何做呢?

Jarod_Chou的博客 8261

架构演进之路:从单体架构到微服务架构

单体架构适合业务简单、团队小的场景,但无法支撑复杂业务。分布式架构解决了性能瓶颈,但引入了系统复杂性问题。微服务架构进一步优化了团队协作和系统弹性,但运维成本高昂。没有最好的架构,只有最适合的架构。架构设计需始终围绕业务目标、团队能力和技术成本进行权衡。

ctotalk 1753

测试丢包_电信IPRAN承载LTE业务丢包故障处理案例

银川 景旭阳电信IPRAN承载LTE业务丢包故障处理案例一.故障现象某地市IPRAN网络承载LTE基站业务,客户反馈近期丢包严重,基站侧ping侧核心网EPC丢包达到10%左右;且基站数量在10个左右,并分布在同一地区,需要IPRAN网络协助排查;随后查看了IPRAN网络;发现这些业务所在基站的PW-BFD历史告警存在频繁的UP/DOWN告警;综上信息展开故障处理,初步判断由于BFD频繁...

weixin_29740921的博客 1912

实战解析:在.NET中实现Dify API流式请求与响应的完整方案

本文详细解析了在.NET应用中对接Dify API时实现流式请求与响应的完整方案。针对传统后端“接收完才返回”的痛点,文章提供了基于ASP.NET Core的实战代码,通过配置HttpCompletionOption.ResponseHeadersRead和手动Flush响应流,构建高效的中转管道,确保AI回复能够像ChatGPT一样实时逐字推送到前端,显著提升用户体验。

weixin_29267307的博客 296

从单体架构到分布式架构的演变历程

原本一个数据库服务器上有多个数据库(这里指的是逻辑上的数据集合,通过 create database 创建的那个东西)。数据库服务器,需要更大的硬盘空间,更快的数据访问速度。将数据区分为 “热数据” 和 “冷数据”,把热点数据放置到缓存中,缓存的访问速度往往比数据库快很多。主服务器一般是一个,从服务器可以有多个(一主多从),同时从数据库通过负载均衡的方式,让应用服务器进行访问。数据库存储的仍然是完整的全量数据。当集群中的某个主机挂了,其他的主机仍然可以承担服务,提高了整个系统的可用性。

t1750982356的博客 4045

CST实战:变容二极管电容曲线提取全流程(附S参数设置技巧)

本文详细介绍了在CST Studio Suite中提取变容二极管电容-电压(C-V)曲线的完整实战流程。重点解析了S参数仿真的核心原理、DCFEED模块的正确配置、参数扫描的设置技巧,并探讨了集成SPICE模型进行精确仿真的方法,帮助射频工程师高效、准确地获取器件关键特性。

weixin_29237635的博客 529

分布式架构初识:为什么需要分布式

分布式架构初识:从单体到分布式演进 本文系统介绍了从单体架构到分布式架构的演进过程。单体架构虽具有开发简单、部署方便等优点,但随着业务增长面临扩展性差、可靠性低等局限。通过电商秒杀、金融支付、弹性扩展三个典型场景,文章展示了分布式架构在高并发、高可用和弹性扩展方面的优势。分布式架构可通过水平拆分(分库分表)和服务化(微服务)两种基本形态实现,能有效解决性能瓶颈、单点故障等问题,满足现代互联网应用的高并发、高可用需求。

qq_43414012的博客 2037

MATLAB计算干旱指标:SPI、SRI、SWAP、DWAAI、EDI等

简介各种干旱指数以及其MATLAB代码实现

WW、forever的博客 2万+

AI大模型探索之路-认知篇1-全景透视:揭秘AIGC技术的进化之路

随着人工智能技术的突飞猛进,内容创作方式的发生了革命性的转变;从早期专业人员主导的内容生产,到现如今生成式人工智(AIGC)能创作时代;本篇文章主要讲解AIGC技术的演变历程。

寻道AI,探索AI无限可能! 1650

【Redis】初识高并发分布式和Redis

💬 hello!各位铁子们大家好哇。今日更新了Redis相关内容。

qinjh_的博客 2535

【AI编程】2025年16款主流AI编程工具全维度测评及选型指南

2025年16款主流AI编程工具全维度测评及选型指南

funfan的博客 1万+

【Redis】Redis入门——分布式架构演进及Redis基本特性初识

Redis是一款高性能的内存键值数据库,支持多种数据结构和持久化功能,适用于高并发场景。相比基于外存的MySQL,Redis速度更快但成本更高,实际应用中常采用二八原则,将热点数据缓存到Redis中提升性能。分布式系统中,Redis通过网络通信解决进程间数据共享问题。随着系统架构演进,从单机到应用数据分离、集群架构、读写分离,再到引入缓存实现冷热分离,Redis在提升系统性能和可用性方面发挥关键作用。不同架构方案各有利弊,需根据业务场景权衡选择。

jiunian_thx_cn的博客 689

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

企业服务架构演进-单体架构的变迁

本篇是企业服务架构演进系列的第二篇,副主题是单体架构的变迁。短短2年,我在进行工程系统开发的时候不知不觉已经踩上了单体架构服务的尾巴,从而迈向分布式微服务的大道。 本系列主要讲解我在之前公司的一些工程设计见闻和思考,整个系列大概有7篇文章。 企业服务架构演进-引言 ###2.企业服务架构演进-单体架构的变迁 企业服务架构演进-从jquery到vue的工程实践 企业服务架构演进-单库多服务的尴尬 企业服务架构演进-第三方系统与自研之道 企业服务架构演进-走上造轮子之路 企业服务架构演进-重复开发之殇 .

程序男的专栏 1585

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Redis存储①高并发分布式架构演进

Redis存储①高并发分布式架构演进(架构的基本概念和评价指标+单机架构+应用数据分离架构+应用服务集群架构+读写分离/主从分离架构+冷热分离架构+垂直分库架构+微服务架构+容器编排架构)

参考书籍:《C语言程序设计》《数据结构》《C++ Primer》《Effective C++》《STL源码剖析》《现代操作系统》《UNIX环境高级编程》《图解TCP/IP》《图解HTTP》《Linux高性能服务器编程》《剑指Offer》《算法导论》 1816

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

微服务架构学习与思考(12):从单体架构到微服务架构的演进历程

从单体架构到微服务架构的演进历程,详细剖析,各阶段架构分解。

九卷技术录 1144

【Redis】分布式架构演进与Redis的核心价值

本文介绍了Redis的基本概念及其在分布式架构中的应用演变。Redis作为内存级存储系统,可用作数据库、缓存和消息中间件,其访问速度优于传统数据库如MySQL,但存储空间有限。文章通过电商服务案例,从单机架构逐步演进到负载均衡、数据库读写分离和冷热数据分离架构,分析了不同架构的优缺点。最终强调应根据实际业务需求选择合适的架构模式,技术服务于业务场景。

2403_88316985的博客 644

知道这些坑,你还敢乱把单体架构拆成分布式吗?

作者丨树洞君来源丨网址:https://juejin.cn/post/7121885160068349982一、背景我们在聊架构风格之前先明确一个问题,什么是架构?我们为什么要选择架构、用来解决哪些问题?1、什么是架构书本定义:“软件的架构是一种抽象的结构,他由软件的各个组成部分和这些部分之间的依赖关系构成”。我的理解是,架构就是根据业务选择合适的技术、中间件,并且按照合适的设计模式对这些模块,进...

架构师小秘圈 269

【Redis】 浅谈分布式架构

Redis 是引入缓存——冷热架构时所需要用到的一个关键技术,那什么是架构呢?架构的的演进过程又是怎么杨的呢?接下来我们一起来看一看在进⾏技术学习过程中,由于⼤部分读者没有经历过⼀些中⼤型系统的实际经验,导致⽆法从全局理解⼀些概念,所以本⽂以⼀个"电⼦商务"应⽤为例,介绍从⼀百个到千万级并发情况下服务端的架构的演进过程,同时列举出每个演进阶段会遇到的相关技术,希望能帮助⼤家对分布式架构的演进有⼀个整体的认知。如此,⼀个还算合理的⾼可⽤、⾼并发系统的基本雏形已显。

m0_71731682的博客 1441

架构之演进式法则:从单体到中台化的大型互联网系统架构演进

架构演进是一个持续的过程,没有终点。随着业务的发展、技术的进步、组织的变化,架构也需要不断地调整和优化。关键是要建立一套科学的架构演进方法论,让架构演进成为组织能力的有机组成部分,而不是被动的应对。 记住:最好的架构不是最先进的架构,而是最适合当前业务需求、团队能力和资源约束的架构。架构演进的目标不是追求完美,而是持续改进,让技术更好地服务于业务发展和用户价值创造。

d3y1`5 81_09 1295

从单体到分布式:一次完整的架构演进之旅

本文系统梳理了软件架构的演进历程:从单体架构到集群架构,再到微服务架构。单体架构简单易用但扩展困难;集群架构通过负载均衡实现水平扩展,解决了应用层瓶颈;微服务架构按业务拆分服务,实现团队自治和技术多样性。详细分析了分布式架构的核心组件(服务注册、API网关、配置中心、分布式事务)及完整架构视图,并给出架构选择的实用建议:单体适合初创阶段,集群应对流量增长,分布式适合复杂业务和大团队。

2403_87729201的博客 1027

详解单体架构 微服务 微服务架构 分布式结构 集群 负载均衡 服务监听 服务降级 服务通信 session共享 docker技术

单体服务和微服务之间的比较;单体服务的优缺点是什么,以及为什么需要微服务?微服务之间的通信怎么处理,使用什么技术进行服务降级,服务之间的监听使用什么技术,session共享怎么处理?为什么需要zookeeper,为什么需要docker技术,为什么需要Redis,为什么需要hystrix等.........

念兮为美 600

架构演进

一、架构演进 1.开发环境、测试环境/沙箱环境、生产环境(Linux操作系统) 2.单体架构 All in One 2.1web2.0用户激增,基于单体架构集群 2.2问题: 1.用户到底要访问那台服务器 2.多台tomcat数据共享问题 3.涉及到了搜索操作时,数据库受不了 2.3使用中间件解决: 1.使用Nginx反向代理服务器,来解决用户请求问题 2.使用Redis来代替之前使用的JVM内存怒操作 3.使用Elasitcsearch来代替MySQL的模糊查询

qq_39773004的博客 1715

网络安全竞赛平台架构选择:微服务 vs 单体架构深度分析

摘要:网络安全竞赛平台的架构选择需综合考虑业务需求、技术约束和团队能力。微服务架构在并行开发、弹性扩展和容错能力方面优势明显,尤其适合多校联合竞赛等复杂场景;单体架构则更适合小型竞赛和教学实验场景。推荐采用渐进式演进策略,初期使用模块化单体架构,逐步将核心服务(如CTF引擎、AWD服务)微服务化。关键决策因素包括并发规模(>500队需微服务)、模块数量(>5个需微服务)和团队经验,教育场景还需考虑混合部署方案。

深山技术宅的博客 1340

单体架构演变为分布式架构

一、开发环境&生产环境 1.1开发环境 平时在写代码时,大多都在是Win10/Win7/Mac,这些系统都可以称呼为开发环境,咱们会为了更高效的幵发应用程序,安装很多很多的软件,会导致操作系统不安全,稳定性降低。 1.2生产环境 • 在生产环境中,操作系统不会采用Windows/Mac,这种操作系统相对不安全,生产环境是要面向全体用户的,一般会采用专业的操作系统。 • 大多市面上使用的都是基于Linux的操作系统,当然还有Windows版本的服务器操作系统,Windows2003 service等等

liulei2017的博客 666
上一篇: Spring Web MVC 入门:从一个 URL 到 Java 后端完整处理请求
下一篇: LeetCode刷题滑动窗口(水果成篮+找到字符串中所有字母的异位词)Java
评论 13
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值