Redis主从复制原理和复制方式详解(2)
Redis主从复制原理和复制方式详解

设置master 地址和端口
在准备成为slave的Redis服务器上执行下面命令:
127.0.0.1:12345> SLAVEOF 127.0.0.1 6379
OK
salve服务器执行salveof命令【异步命令】的目的是,将给定的master服务器IP地址127.0.0.1和端口6379,保存到从服务器的masterhost属性和masterport属性里面。
redisServer 结构体的字段太多了,这里只展示复制是master的一部分,还有slave的部分属性就不展示了!
//salve的服务器结构体值
struct redisServer{
//...
/* Replication (slave) */
// 验证信息
char *masterauth;
// 命令执行成功后值 127.0.0.1
char *masterhost;
// 6379
int masterport;
//...
};
建立socket连接
slave将根据命令(slave或replicaof)设置的IP地址和端口,创建连向master的套接字(socket)连接。
socket连接到master之后,会注册一个文件事件【syncWithMaster】,接收后续RDB文件、实时写命令,当然在连接建立之后,master也会创建相应的客户端状态啦!

发送 ping 命令
slave成为mater的客户端之后先发送PING命令,主要作用如下:
- 1.检查salve和master的套接字读写状态
- 2.检查master是否能正常处理命令
slave收到PONG回复后才会继续执行后续步骤!
身份验证
客户端如果开启了密码保护的话,在每次连接 Redis 服务器之后,就要使用 AUTH 命令解锁,解锁之后才能使用其他 Redis 命令。
也就是说如果slave设置了 masterauth 属性,那么将会向master发送一条AUTH命令进行身份验证,目的是检验给定的密码 password 和master配置文件中requirepass 项的值是否相符。
向master发送监听端口
slave身份验证之后,发送执行以下命令向mater发送监听端口信息
REPLCONF listening-port <salve监听端口号>
master接收到到命令后,会记录在主服务器对应的客户端状态 salve_listening_port属性中

我们可以在master上执行“info replication”命令可以看到从服务器的port
相关阅读
-
Redis面试宝典:热门面试问题及答案解析
一篇IT技术小知识,为您介绍Redis面试宝典IT技巧方面的经验,下面为详细的介绍。 在许多软件工程面试中,Redis是一个常见的主题。 作为一种高性能的键值数据库,了解Redis的核心概念和使用
-
什么是服务降级和熔断
为网友解答什么是服务降级和熔断的相关经验,接下来IT袋网小编就来介绍。 降级 降级是解决系统资源不足和海量业务请求之间的矛盾 在暴增的流量请求下,对一些非核心流程业务、非关键业
-
深圳建设网站公司有哪些 关于深圳网站设计推荐
为网友们详解深圳建设网站公司有哪些和关于深圳网站设计推荐方面的知识,很不错的方法小知识,建议收藏哦! 网站已是一个企业数字营销的核心部件,甚至是一家企业的战略资产,所有企
-
mysql数据库同步流程步骤 数据库同步差异化处理方法
全面为您解析mysql数据库同步流程步骤的话题,接下来IT袋网小编就来介绍。 MySQL数据库同步通常指将一个数据库服务器(称为主服务器)上的数据同步到另一个或多个数据库服务器(称为从服


