Redis——了解分布式

分布式介绍

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

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

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

几种分布式技术方案

应用数据分离架构

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

应用服务集群架构

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

主从分离架构

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

冷热分离架构

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

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

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

垂直分库

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

业务拆分

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

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


中间件是什么

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

相关推荐
用户3169353811833 天前
Java连接Redis
redis
小小工匠4 天前
Redis - 事务机制:能实现 ACID 属性吗
数据结构·redis·性能优化·并发·持久化
taocarts_bidfans5 天前
反向海淘跨境缓存架构优化:taocarts Redis分层缓存实战技术
redis·缓存·架构·反向海淘·taocarts
炘爚5 天前
Linux——Redis
数据库·redis·缓存
csjane10795 天前
Redisson 限流原理
java·redis
ThanksGive5 天前
Go 服务里的 Redis 锁惊群问题:一次本地合流优化实践
redis
小挪号底迪滴5 天前
Redis 和 MySQL 数据不一致怎么办?缓存更新策略实战
redis·mysql·缓存
闪电悠米5 天前
黑马点评-Redis ZSet-实现关注 Feed 流
服务器·网络·数据库·redis·缓存·junit·lua
Devin~Y5 天前
大厂 Java 面试实录:从音视频内容社区到 AI RAG 的全链路技术设计
java·spring boot·redis·spring cloud·微服务·kafka·音视频