主从环境搭建
1. 从镜像源下载安装包
wget https://repo.huaweicloud.com/redis/redis-5.0.0.tar.gz2. 解压后编译
# 解压
tar -zxvf redis-5.0.0.tar.gz
# 文件夹重命名(非必须)
mv redis-5.0.0 redis
# 新建文件夹,用于保存配置文件和日志
mkdir con log
# 进入redis目录
cd redis/
# 编译
make编译之后在src目录下出现相关命令

3. 修改主Master节点配置文件
将redis目录下
redis.conf文件复制conf目录下,并修改名字redis-master.conf修改配置文件,在master节点中不需要过多配置,常规即可
# 开放网络访问
bind 0.0.0.0
# 端口
port 9001
# 后台启动
daemonize yes
# pid文件存放路径
pidfile /var/run/redis_9001.pid
# 日志级别改为debug,可以查看更多信息
loglevel debug
# 输出日志到文件,文件不存在会自动创建
logfile "/${yourPath}/redis/log/master.log"
# 配置密码
requirepass 1234564. 修改Slave节点配置文redis-slave.conf
# 开放网络访问
bind 0.0.0.0
# 端口
port 9002
# 后台启动
daemonize yes
# pid文件存放路径
pidfile /var/run/redis_9002.pid
# 日志级别改为debug,可以查看更多信息
loglevel debug
# 输出日志到文件,文件不存在会自动创建
logfile "/${yourPath}/redis/log/slave.log"
# 配置master节点的连接信息
replicaof 10.0.0.2 9001
# 配置master节点的密码
masterauth 123456
5. 启动master和slave节点
cd /${yourPath}/redis/src
# 启动master节点
./redis-server /${yourPath}/conf/redis-master.conf
# 启动slave节点
./redis-server /${yourPath}/conf/redis-slave.conf 至此,Redis的主从结构就搭建完毕了,目前是一主一从,也可以实现一主多从,自己参redis-slave.conf即可。
主从同步原理
1. 查看master节点日志

2. 查看slave节点日志

通过日志就可以大致了解数据是如何在两者之间进行的,在此做出总结:
Master节点启动
2. Slave节点启动
3. 从磁盘加载数据
4. Slave节点执SYNC命令告知Master节点开始数据同步
5. Master接收到来自Slave节点的请求,发PING命令执行网络检测
6. 若PING命令执行成功,Master执BGSAVE命令将内存中的数据另起一个线程持久化到磁盘,再发送给Slave节点
7. Slave节点接受到数据后,删除内存中的老数据,加载新数据
8. 数据同步结束
参考资料
1. redis-doc