Redis——了解分布式

分布式介绍

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

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

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

几种分布式技术方案

应用数据分离架构

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

应用服务集群架构

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

主从分离架构

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

冷热分离架构

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

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

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

垂直分库

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

业务拆分

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

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


中间件是什么

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

相关推荐
ShineWinsu6 小时前
对于Redis:Hash类型的解析
c++·redis·分布式·缓存·面试·hash·哈希表
.Hypocritical.7 小时前
Redis从入门到实战:核心原理、场景落地与避坑指南
数据库·redis·缓存
用户6222884048197 小时前
Redis 分布式锁:从 2.8 之前到 2.8+,一篇讲透
redis
程序猿乐锅9 小时前
【黑马点评 | 第十一篇】关注 Feed 流实现
java·数据库·redis·分布式·后端·缓存·maven
ShineWinsu10 小时前
对于Redis:List类型的解析
数据库·c++·redis·链表·缓存·面试·list
XS03010611 小时前
Redis 学习指南
数据库·redis·缓存
夕除11 小时前
redis--集群
java·redis
喜欢的名字被抢了11 小时前
09-Redis 进阶原理篇:单线程、多线程、过期、LRU-LFU、Fork 与 Lua
数据库·redis·lua
zl_dfq21 小时前
Redis 之 【高可用架构】(从主从复制、哨兵到集群)
redis
hweiyu001 天前
Redis命令:HPERSIST
redis·缓存