Redis——了解分布式

分布式介绍

单机架构就是提供的所有服务都运行在同一台机器上(应用服务、存储服务等)。而当用户数量变多,服务器同一时刻需要处理的请求也会变多,就可能导致CPU,内存,磁盘,网卡中的某一种或者某几种资源不够用,影响用户体验甚至造成服务直接崩溃。而分布式架构主要就是通过引入更多的硬件资源(服务器)来解决资源不足的问题。

具体来说,分布式可以是将数据库服务和应用服务分别部署在不同的服务器上,再进一步的,除了将数据库服务部署在单独的服务器上,也将应用服务部署在不同的服务器上负载均衡(使用一个另外的服务器做分发器,这个服务器也可叫网关)

但是,分布式并不是一个替代单机架构的更好选择,因为分布式往往会引入更多问题,比如提高系统复杂度,降低响应速度,维护成本更高(出bug的可能更大)。所以分布式其实是因为单机资源有限的无奈之举。

几种分布式技术方案

应用数据分离架构

应用服务和存储服务分离,单机资源压力减小,管理更方便。

应用服务集群架构

把应用服务部署在多个服务器上实现负载均衡,可以让服务处理更多请求,也可以提升服务器的容错率(某个机器挂了之后还可用其他机器处理请求)

主从分离架构

还可以把数据库服务进行负载均衡,主服务器写,多个从服务器负责读(从服务器可以有多个,因为读的频率一般比写高得多)。可以减轻单个存储服务的压力(查询次数太多)。

冷热分离架构

数据库读访问比较慢,再加上网络通信就更慢了。所以可以在数据存储系统中增加一个缓存服务器,它把热点数据(被高频访问的)组织起来存储在内存中,用户读取数据首先从缓存服务器中查找,而内存访问速度比IO快很多。

这个架构有效是因为二八原则:20%的数据可以解决80%的请求,也就是说内存中只要存储20%的数据即可,也不会存不下。

其实这个缓存服务器就是redis常常被用到的位置。

垂直分库

如果数据量太大,一台数据库服务器不够存储下所有的数据那么就会把多个数据库(database)或者数据表分别存储在不同的服务器下,不同的数据库存储服务也可以使用上述的主从分离架构,所以单个数据库或者数据表的服务也形成了存储集群。

业务拆分

**把一个服务按照功能拆分成不同的微服务。分组管理有利于人员配置和模块专精,也便于功能复用。**坏处就是多个功能之间的调用依赖网络通信,会导致性能下降并且系统度上升复杂,维护成本更高。

所以微服务解决的就是一种管理问题,当然他也让单机压力进一步减小


中间件是什么

中间件就是与具体业务无关,功能比较通用的一种服务,比如说数据库服务,缓存服务,以及消息队列等。Redis就可以做这些中间件服务。

相关推荐
Valora10 小时前
简单学会redis
redis
踏着七彩祥云的小丑12 小时前
忘记Redis是否安装过时查看
数据库·redis·缓存
一嘴一个橘子14 小时前
redis 通用命令详解
redis
☆凡尘清心☆15 小时前
CentOS Stream 9 Redis 7.2.7 源码编译一键安装脚本
linux·运维·redis·centos
麻瓜code17 小时前
【Redis 】数据类型、持久化与过期删除
数据库·redis·缓存
☆凡尘清心☆18 小时前
CentOS Stream 9 编译安装 Redis 7.2.7 完整版详细步骤
linux·redis·centos
晚安code18 小时前
RocketMQ 延迟消息实战:延迟双删策略解决 Redis 缓存一致性
redis·rocketmq
山城码农笑松哥18 小时前
Redis 8.8 新特性实操笔记:原生数组、INCREX 限流、XNACK 流处理
redis·笔记·junit
changshuaihua00119 小时前
Redis 详解:Redis 与 MySQL 的区别、数据类型与缓存三大问题
数据库·redis·缓存
随风M记忆s21 小时前
Redis支持事务吗?了解Redis的持久化机制吗?
数据库·redis·bootstrap