初识redis——分布式系统概念

概念

Redis(Remote Dictionary Server ),即远程字典服务,是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。

最初redis用来作为消息中间件,现在更多用于分布式缓存。与mysql相比,redis的访问速度更快,mysql将变量存储在外存中,而redis存储在内存中,基于网络将自己内存中的变量给别的主机的进程进行使用

分布式系统

单机架构:只有一台服务器负责业务处理和数据存储
初识redis——分布式系统概念_第1张图片

当用户数非常多时,一台服务器既要存储又要和用户交互,性能和内存难以支撑,因此可以将应用服务和数据存储服务分开

分别设立应用服务器和数据库服务器,应用服务器可以配备更好的cpu和内存,而数据库服务器可以配置更大的ssd硬盘
初识redis——分布式系统概念_第2张图片
而当公司规模变大,用户数量进一步激增,便需要引入更多的服务器节点,此时用户的请求先到达负载均衡器/网关服务器,其可以根据应用服务器的访问量自动分配请求,让每个应用服务器的工作量大致相同

当然,所有的用户请求都集中到负载均衡器的身上了,虽然负载均衡器不负责处理请求,但是当请求过多时负载均衡器也会达到极限,因此可以引入多个负载均衡器协同工作
初识redis——分布式系统概念_第3张图片
我们的请求分散到了多个应用服务器上,减少了应用服务器的压力,但是存储服务器也有很大的压力。

可以采用读写分离的方式减轻存储服务器的压力,主存储器负责数据的写入,从存储器同步主存储器中的内容,应用服务器从从存储器中读取数据
初识redis——分布式系统概念_第4张图片
由于数据库的响应速度很慢,我们可以将频繁被访问的数据放到缓存中,用户的请求先发送到缓存服务器中,如果缓存中存在,那么直接返回数据,否则发送到主存储器中。这样也可以减轻数据库的压力,而redis就是负责这个缓存服务器的
初识redis——分布式系统概念_第5张图片
虽然存储服务器的可存储数据可以达到几十个tb,但是现在的视频越来越大,有些时候一个主机存不下那么多数据,因此需要对存储服务器进行分库分表,每个数据库存储器存储部分数据库
初识redis——分布式系统概念_第6张图片
当应用服务器变得更多更复杂时,管理这些服务器就更加困难,此时可以按照公司的业务,可以分为不同的服务器种类,使服务器的功能更加单一,这样的服务器架构称为微服务架构
初识redis——分布式系统概念_第7张图片

常见概念

应用(Application)/ 系统(System)

一个应用就是一个/一组服务器程序

模块(Module)/ 组件(Component)

一个应用中有许多的功能,一个功能就是一个模块

分布式(Distributed)

多个主机/服务器协同处理工作

集群(Cluster)

和分布式一致,但是集群是逻辑上有多个主机,分布式是物理上有多个主机

主(Master)/ 从(Slave)

多个服务器节点中有一个主节点,其他的是从节点,从节点需要同步主节点的数据

中间件(Middleware)

和业务无关的服务,例如数据库,消息队列,缓存等

可用性(Availability)

可用性是系统的第一要务
可用性 = 系统整体可用的时间 / 总时间

响应时长(Response Time RT)

处理一个请求消耗多少时间

吞吐(Throughput)

系统在单位时间内处理请求的数量

并发(Concurrent)

系统同时处理的请求数

你可能感兴趣的:(redis,数据库,redis,数据库,缓存)