Redis高可用-主从复制及原理

作者:Administrator 发布时间: 2025-10-03 阅读量:40

主从环境搭建

1. 从镜像源下载安装包

wget https://repo.huaweicloud.com/redis/redis-5.0.0.tar.gz

2. 解压后编译

   # 解压
   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 123456

4. 修改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节点日志

通过日志就可以大致了解数据是如何在两者之间进行的,在此做出总结:

  1. Master节点启动

2. Slave节点启动

3. 从磁盘加载数据

4. Slave节点执SYNC命令告知Master节点开始数据同步

5. Master接收到来自Slave节点的请求,发PING命令执行网络检测

6. 若PING命令执行成功,Master执BGSAVE命令将内存中的数据另起一个线程持久化到磁盘,再发送给Slave节点

7. Slave节点接受到数据后,删除内存中的老数据,加载新数据

8. 数据同步结束

参考资料

1. redis-doc