Redis主从复制(读写分离)原理解析

** 单机的redis并发大概在5万--6万左右。

一:主从架构

Redis主从复制(读写分离)原理解析_第1张图片

 

二:读写分离(主从复制)原理

1、第一次过程(初始化)【全量复制

首先启动master,当slave完成配置并且启动以后,slave会向master发送一个ping包,告诉master我现在已经启动了;你是不是应该交给我一些任务去处理吧?这个时候master就会把一些数据提交slave,让slave去处理,那么这个过程就是全量的数据复制;

那么这个数据就rdb文件,master会把rdb文件拷贝一份新的放在磁盘里面,放在磁盘里面那么就是从内存里面拿出来,然后master会通过它的内网的网络传输传给slave,slave拿到rdb以后并不是直接读到内存里面去的,而是把rdb下载到磁盘中下载到硬盘里面以后随后才会把rdb再一次加载到slave内存里面去,这样就完成了一个复制的过程。这个过程就是第一个过程相当于是初始化过程

2、第二/三次以后:【增量复制

那么在第一次、第二次、第三次以后,只要是有一些相应的写的请求进来,只要是写操作master就会有一条写一条到rdb文件,master会有相应的命令同步的传输给slave,那么这样子的话,slave就会去修改它自己的内存中的数据,如此它们之间就能够做到一个数据的同步的;这时候我们的slave就可以为外部提供一些额外的读的请求。

3、替换数据

另外呢在做数据同步的过程,是不会影响或阻塞master的写操作的,也不会阻塞slave的读操作的,最主要的是它们会使用老的数据来提供服务,一旦数据同步完成以后,那么就会替换老的数据使用新的数据来提供相应的服务。

注意:使用主从复制master必须开启持久化,如果不开启持久化一旦master停机后,slave还是可以通过读的服务;但是master恢复以后,由于没有持久化,内存里面是没有任何数据的,master再一次做数据同步的时候,master会把slave里面的数据清空的。

Redis主从复制(读写分离)原理解析_第2张图片

 

三:主从模式

1、一主一从模式

2、一主二从模式

一般不会使用一主多从,因为在内网里面,master要做主从复制将数据同步给slave的时候,就相当于上传和下载;

一旦slave比较多了,他们在做数据同步的时候就会在一直占用内网网络的带宽,这样不太好。就像再古代的时候娶老婆,娶太多了可能忙不过来,娶一个两个还可以。

3、树状模式

           |-->slave1

master|                 

           |-->slave2--->包含 slave2-1和slave2-2

                  

你可能感兴趣的:(Redis,Redis读写分离)