目录
[一 主从模式](#一 主从模式)
[1.1 主从复制的作用](#1.1 主从复制的作用)
[1.2 配置常用命令](#1.2 配置常用命令)
[1.3 主从复制常见问题](#1.3 主从复制常见问题)
[1.4 主从复制的缺点](#1.4 主从复制的缺点)
[1.5 redis主从复制原理](#1.5 redis主从复制原理)
[二 redis主从复制的搭建流程](#二 redis主从复制的搭建流程)
[2.1 注意事项](#2.1 注意事项)
[2.2 redis的主从复制架构图](#2.2 redis的主从复制架构图)
[2.3 以6379.conf配置文件配置为例](#2.3 以6379.conf配置文件配置为例)
[2.4 以6380.conf配置文件配置为例](#2.4 以6380.conf配置文件配置为例)
[2.5 以6381.conf配置文件配置为例](#2.5 以6381.conf配置文件配置为例)
一 主从模式
1.1 主从复制的作用
作用:主从复制,master以写为主,slave以读为主;当master有数据变化的时候,自动将新的数据异步同步到其它slave数据库。
其他作用:读写分离;容灾恢复;数据备份;水平扩容支撑高并发。
Master节点挂了后,默认从节点不会自选成主节点的。解决办法使用哨兵模式。
1.2 配置常用命令
1.info replication 可以查看复制节点的主从关系和配置信息。
2.replicaof 主库ip 主库端口 一般写入redis.conf配置文件内,这条指令的作用是指定要连接的主节点的 IP 地址和端口号,使得当前的 Redis 实例能够从主节点那里复制数据。
3.slaveof 主库ip 主库端口 命令用于设置当前数据库为指定主数据库的从数据库,并启动与主数据库的同步操作。
4.slaveof no one: 使当前数据库停止与其他数据库的同步,转成主数据库,自立为王。
replicaof 和 slaveof 是两个不同的命令,它们都用于将当前服务器配置为 Redis主实例的副本。replicaof 是 Redis 3.0 及以上版本推荐使用的命令,而 slaveof 是旧版本的命令。
1.3 主从复制常见问题
1.从机器不可以进行写操作;2.主机down之后,从机不会上位;3.主机down之后,主从关系还在;主机重新启动还能当master;4.从机down之后,再次重启后,先进行全量复制,然后进行增量复制。5.切入点问题:slave是从头开始复制还是从切入点开始复制? master启动,写到k3; slave1跟着master同时启动,跟着写到k3;slave2写到k3后才启动,那之前的是否也可以复制?先全量后增量。
1.4 主从复制的缺点
复制延时,信号衰减:由于所有的写操作都是现在master上操作,然后同步更新到slave上,所有从master同步到slave机器有一定的延迟,当系统很繁忙的时候,延迟问题会更加严重,slave机器数量的正价也会使这个问题更加严重。
Master节点挂了后,默认从节点不会自选成主节点的。解决办法使用哨兵模式。
1.5redis主从复制原理
1.slave启动,同步初清;slave启动成功连接到master后会发送一个sync命令,slave首次全新链接master,一次完全同步(全量复制)将被自动执行,slave自身原有旧数据会被master数据覆盖掉。
2.首次连接,全量复制:mster节点收到sync命令后会开始在后台保存快照(即RDB持久化,主从复制会触发RDB),同时收集所有接收到的用于修改数据集命令缓存起来,master节点执行RDB持久化完后。Master将rdb快照文件和所有缓存命令发送到slave,以完成一次全量同步,而slave服务在接收到数据库文件rdb数据后,将其存盘并加载到内存中,从而完成复制初始化。
3.心跳持续,保持通信: repl-ping-replica-period 10:master发出PING包的周期,默认是10秒
4.进入平衡,增量复制:master继续将新的所有收集到的修改命令自动依次传给slave,完成同步。
5.从机下线,重连续传:master会检查backlog里面的offset,master和slave都会保存一个复制的offset还有一个masterid,offset是保存在backlog中的。
二 redis主从复制的搭建流程
2.1 注意事项
1.确保3台节点的防火墙进行关闭
2.权限设置,如果主节点设置了密码,master配置了requirepass参数,需要密码登录,则slave需要配置masterauth来设置校验码,否则的话master会拒绝slave的访问请求。
2.2 redis的主从复制架构图
主从复制的架构图:一主二从。
2.3 以6379.conf配置文件配置为例
1.开启daemonize yes的配置
2.注释掉 127.0.0.1
3.设置protected mode no
4.指定端口
5.制定当前工作目录
6.指定pid的文件路径
7.指定日志的文件目录
8.设置密码
9.设置dump.rdb文件名
10.aof的文件,路径配置
11.从节点访问主节点配置通信验证的密码,其他两个从节点需要配置信息,主节点不需要:
2.4 以6380.conf配置文件配置为例
将6379.conf配置文件复制到6380节点,修改文件名为6380.conf。进行配置主从关系:同时也配置密码校验。Masterauth 111111;
2.5 以6381.conf配置文件配置为例
将6379.conf配置文件复制到6381节点,修改文件名为6381.conf。进行配置主从关系:同时也配置密码校验。Masterauth 111111;
2.6主从启动
2.7查看主从关系
1.master日志查看:和从机端口6380和6381同步成功。
2.查看从机日志:可以看到从机连接到端口6379主机
3.使用命令进行查看:使用 info replication 进行查看