4.2 复制:


4.2  复制:

对于有扩展平台以适应更高负载经验的工程师和管理员来说,

复制是不可或缺的。 复制可以让其他服务器拥有一个不断地更新的数据副本

从而使得拥有数据副本的服务器可以用于处理客户端发送的读请求。

4.2.1  对Redis的复制相关选项进行配置

13725:M 14 Oct 16:50:03.879 - DB 0: 2 keys (0 volatile) in 4 slots HT.
13725:M 14 Oct 16:50:03.879 - 1 clients connected (0 slaves), 529072 bytes in use
13725:M 14 Oct 16:50:04.588 * Background saving started by pid 22679
22679:C 14 Oct 16:50:04.591 * DB saved on disk
22679:C 14 Oct 16:50:04.592 * RDB: 2 MB of memory used by copy-on-write
13725:M 14 Oct 16:50:04.686 * Background saving terminated with success

4.1.1  节中曾经介绍过,当从服务器连接主服务器的时候,主服务器会执行BGSAVE操作。

因此为了正确地使用复制特性,用户需要保证主服务器已经正确地设置了

dir选项和dbfilename选项 。

尽管有多个不同的选项可以控制从服务器自身的行为,

但开启从服务器所必须的选项只有slaveof一个



如果用户在启动Redis服务器的时候,指定了一个包含slaveof host port 

选项的配置文件,

4.2.2  Redis 复制的启动过程 

本章前面曾经说过,从服务器在连接一个主服务器的时候,主服务器会创建

一个快照文件并将其发送至从服务器,但这指示主从复制执行过程的其中一步。



步骤           主服务器操作                            从服务器操作
1              (等待命令进入)                       连接(或者重连接)主服务器,发送SYNC命令

2               开始执行BGSAVE,并使用缓冲区记录      根据配置选项来决定是继续使用现有的数据(如果有的话)
 
                BGSAVE 之后执行的所有写命令           来处理客户端的命令请求,还是向发送请求的客户端返回错误                     


3               BGSAVE 执行完毕,向从服务器发送快照文件,
         
		        并在发送期间继续使用缓冲区记录被执行的命令        丢弃所有的旧数据,开始载入主服务器发来的快照文件
				
				
4                快照文件发送完毕,开始向从服务器发送菜存储在缓冲区里面的写命令         完成对快照文件的解释操作,像往常一样开始介绍命令请求


5                 缓冲区存储的写命令发送完毕,从现在开始,每执行一个写命令,                执行主服务器发来的所有存储缓冲区里面的写命令,

                 
				  就向从服务器发送相同的写命令                                            


从服务器在进行同步时,会清空自己的所有数据

警告:Redis 不支持主主复制(master-master replication)

因为Redis允许用户在服务器启动之后使用SLAVEOF命令来设置从服务器选项
3725:M 14 Oct 23:24:02.617 - Accepted 192.168.137.2:60608
13725:M 14 Oct 23:24:02.618 * Slave 192.168.137.2:6379 asks for synchronization
13725:M 14 Oct 23:24:02.618 * Full resync requested by slave 192.168.137.2:6379
13725:M 14 Oct 23:24:02.618 * Starting BGSAVE for SYNC with target: disk
13725:M 14 Oct 23:24:02.619 * Background saving started by pid 4911
4911:C 14 Oct 23:24:02.633 * DB saved on disk
4911:C 14 Oct 23:24:02.634 * RDB: 2 MB of memory used by copy-on-write
13725:M 14 Oct 23:24:02.702 * Background saving terminated with success
13725:M 14 Oct 23:24:02.703 * Synchronization with slave 192.168.137.2:6379 succeeded
13725:M 14 Oct 23:24:06.235 - DB 0: 3 keys (0 volatile) in 4 slots HT.
13725:M 14 Oct 23:24:06.235 - 0 clients connected (1 slaves), 1577824 bytes in use
发布了3776 篇原创文章 · 获赞 113 · 访问量 349万+

猜你喜欢

转载自blog.csdn.net/zhaoyangjian724/article/details/104207769
4.2
今日推荐