主从环境搭建
-
从镜像源下载安装包
wget https://repo.huaweicloud.com/redis/redis-5.0.0.tar.gz
-
解压后编译
# 解压 tar -zxvf redis-5.0.0.tar.gz # 文件夹重命名(非必须) mv redis-5.0.0 redis # 新建文件夹,用于保存配置文件和日志 mkdir con log # 进入redis目录 cd redis/ # 编译 make
编译之后在src目录下出现相关命令
-
修改主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 123456
-
-
修改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
-
启动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
即可。
主从同步原理
-
查看master节点日志
-
查看slave节点日志
通过日志就可以大致了解数据是如何在两者之间进行的,在此做出总结:
- Master节点启动
- Slave节点启动
- 从磁盘加载数据
- Slave节点执行
SYNC
命令告知Master节点开始数据同步 - Master接收到来自Slave节点的请求,发送
PING
命令执行网络检测 - 若PING命令执行成功,Master执行
BGSAVE
命令将内存中的数据另起一个线程持久化到磁盘,再发送给Slave节点 - Slave节点接受到数据后,删除内存中的老数据,加载新数据
- 数据同步结束