【Redis】Redis入门以及什么是分布式系统{Redis引入+分布式系统介绍}

文章目录

单机架构

分布式是什么

数据库分离和负载均衡

理解负载均衡

数据库读写分离

引入缓存

数据库分库分表

引入微服务

介绍

The open source, in-memory data store used by millions of developers as a databases ,cache, streaming engine, and message broker.

数百万开发人员使用的开源内存数据存储,作为数据库、缓存、流引擎和消息代理。

Redis 的初心,最初就是用来作为一个"消息中间件"的(消息队列),当前很少会直接使用 Redis 作为消息中间件(业界有更多更专业的消息中间件使用)

databases

MySQL 最大的问题在于访问速度比较慢。很多互联网产品中,对于性能要求很高。

Redis 也可以作为数据库使用.快!! 定性的角度,可以知道 Redis 快很多,但是很难定量衡量

redis和mysql相比最大的劣势,存储空间是有限的!!

虽然有不少的互联网产品,对于性能要求比较高的.更多的互联网产品对于性能要求没那么高。

又大又快可以把 Redis 和 MySQL 结合起来使用,但是系统的复杂程度大大提升了,而且, 如果数据发生修改,还涉及到 Redis 和 MySQL 之间的数据同步问题。

"二八原则",20% 的热点数据, 能满足 80% 的访问需求

streaming engine

分布式系统下的生产者消费者模型。

redis的引入

定义变量,不就是在内存中存储数据嘛?

Redis 是在分布式系统中才能发挥威力的。如果只是单机程序,直接通过变量存储数据的方式是比使用 Redis 更优的选择。

由于进程 的隔离性!!进程间通信=>网络
Redis 就是基于网络,可以把自己内存中的变量给别的进程甚至别的主机的进程进行使用

分布式系统

单机架构

只有一台服务器,这个服务器负责所有的工作。

MySQL 是一个客户端服务器结构的程序!!!本体是 MySQL 服务器(存储和组织数据的部分)

单机程序中,能不能把数据库服务器也去掉,光一个应用服务器又负责业务,又负责数据存储?(也不是不可以,但是就是会比较麻烦)

绝大部分的公司的产品,都是这种单机架构!!!现在计算机硬件,发展速度非常之快

哪怕只有一台主机,这一台主机的性能也是很高的.可以支持非常高的并发 & 非常大的数据存储,

如果业务进一步增长,用户量和数据量都水涨船高,一台主机难以应付的时候,就需要引入更多的主机,引入更多的硬件资源。

一台主机的硬件资源是有上限的!!!

1.CPU

2.内存

  1. 硬盘

  2. 网络

6...

服务器每次收到一个请求,都是需要消耗上述的一些资源的

如果同一时刻,处理的请求多了,此时就可能会导致某个硬件资源,不够用了!!!

无论是哪个方面不够用了,都可能会导致服务器处理请求的时间变长,甚至于处理出错

如果我们真的遇到了这样的服务器不够用的场景,怎么处理呢?

1.开源 -简单粗暴,增加更多的硬件资源~-

2.节流-软件上优化.(各凭本事了,需要通过性能测试,找到是哪个环节出现了瓶颈,再去对症下药)

难!! 对于程序猿的水平要求就比较高了

一个主机上面能增加的硬件资源也是有限的取决于主板的扩展能力

主机扩展到极限了,但是还不够,就只能引入多台主机了!!!

不是说新的机器买来就直接可以解决问题了.也需要软件上做出对应的调整和适配

一旦引入多台主机了,咱们的系统就可以称为是"分布式系统"

引入分布式,这是万不得已,无亲之举,系统的复杂程度会大大提高。出现 bug 的慨率越高, =>加班的概率 & 丢失年终奖的概率 提高。

应用服务和数据库服务分离

应用服务器,里面可能会包含很多的业务逻辑, 可能会吃 CPU 和 内存.

数据库服务器, 需要更大的硬盘空间,更快的数据访问速度可以配置更大硬盘的服务器,甚至还可以上 SSD 硬盘(固态硬盘)。

1.机械硬盘,便宜,慢 2. 固态硬盘, 贵, 快

【负载均衡】引入更多的应用服务器节点

负载均衡就像公司的一个组的领导一样,要负责管理,要负责把任务分配给每个组员。

应用服务器可能会比较吃 CPU 和 内存,如果把 CPU 或者内存吃没了,此时应用服务器就顶不住了,引入更多的应用服务器,就可以有效解决上述问题。

用户的请求,先到达负载均衡器/网关服务器(单独的服务器),对于负载均衡器来说,有很多的 负载均衡 具体的算法,假设有 1w 个用户请求,有 2 个应用服务器,此时按照负载均衡的方式,就可以让每个应用服务器承担 5k 的访问量,这个和"多线程"有点像。

相关推荐
yuanpan几秒前
MongoDB的事务机制
数据库·mongodb
SelectDB42 分钟前
Apache Doris 2.1.8 版本正式发布
大数据·数据库·数据分析
云和恩墨3 小时前
云计算、AI与国产化浪潮下DBA职业之路风云变幻,如何谋破局启新途?
数据库·人工智能·云计算·dba
Fly不安全3 小时前
Web安全:缓存欺骗攻击;基于缓存、CDN的新型Web漏洞
nginx·web安全·缓存·web·cdn·缓存欺骗攻击
明月看潮生3 小时前
青少年编程与数学 02-007 PostgreSQL数据库应用 11课题、视图的操作
数据库·青少年编程·postgresql·编程与数学
奈葵3 小时前
Spring Boot/MVC
java·数据库·spring boot
落霞的思绪3 小时前
Redis实战(黑马点评)——涉及session、redis存储验证码,双拦截器处理请求
spring boot·redis·缓存
leegong231113 小时前
Oracle、PostgreSQL该学哪一个?
数据库·postgresql·oracle
中东大鹅3 小时前
MongoDB基本操作
数据库·分布式·mongodb·hbase