redis学习-主从

redis主从作用

  1. 数据冗余,数据热备份的一种方式,主从节点部署在不同主机上,防止主服务器硬盘损坏丢失数据。

  2. 快速故障恢复,主节点出现问题后,可以切换到从节点,使从节点成为主节点提供服务。

  3. 负载均衡,配合读写分离,主节点提供写服务,从节点提供读服务,写少读多的情况下可以提供多个从节点,分担服务器压力。

主从配置

配置环境:

1
2
主节点 127.0.0.1 6380
从节点 127.0.0.1 6381

配置时从节点可以修改配置文件slaveof部分,也可以服务启动后执行 slaveof ip port 命令

主节点日志如下:

从节点日志如下:

根据日志信息主从已经同步,可以在主节点通过set命令添加数据,在从节点通过get命令校验是否自动同步。

复制原理

建立连接

slaveof命令是异步命令,从节点完成主节点IP和PORT保存后给客户端返回操作成功。从节点创建socket连接,连接成功后主节点记录从节点信息,从节点发送PING命令检测连接是否可以,连接可用后如果需要验证发送auth验证。

数据同步

从节点第一次连接到主节点需要同步主节点数据,同步数据之前先删除本地数据,同步方式分为全量复制和部分复制。

命令传播

完成第一次数据同步后,如果master上数据有变化,master会将写操作发送到slave节点,slave执行命令保证数据一致性。

主从状态

可以通过info Replication命令查看主从状态,下图分别为主节点和从节点信息


参考

深入学习Redis(3):主从复制