redis学习-主从
redis主从作用
数据冗余,数据热备份的一种方式,主从节点部署在不同主机上,防止主服务器硬盘损坏丢失数据。
快速故障恢复,主节点出现问题后,可以切换到从节点,使从节点成为主节点提供服务。
负载均衡,配合读写分离,主节点提供写服务,从节点提供读服务,写少读多的情况下可以提供多个从节点,分担服务器压力。
主从配置
配置环境:
1 | 主节点 127.0.0.1 6380 |
配置时从节点可以修改配置文件slaveof部分,也可以服务启动后执行 slaveof ip port 命令
主节点日志如下:
从节点日志如下:
根据日志信息主从已经同步,可以在主节点通过set命令添加数据,在从节点通过get命令校验是否自动同步。
复制原理
建立连接
slaveof命令是异步命令,从节点完成主节点IP和PORT保存后给客户端返回操作成功。从节点创建socket连接,连接成功后主节点记录从节点信息,从节点发送PING命令检测连接是否可以,连接可用后如果需要验证发送auth验证。
数据同步
从节点第一次连接到主节点需要同步主节点数据,同步数据之前先删除本地数据,同步方式分为全量复制和部分复制。
命令传播
完成第一次数据同步后,如果master上数据有变化,master会将写操作发送到slave节点,slave执行命令保证数据一致性。
主从状态
可以通过info Replication命令查看主从状态,下图分别为主节点和从节点信息

