redis主从复制,主读不到从节点信息的坑

时间:2024-04-06 12:22:09

主从复制是指将一台Redis服务器的数据,复制到其它的Redis服务器。前者称为主节点(master),后者称为从节点(slave);数据的复制是单向的,只能由主节点到从节点。默认情况下,每台Redis服务器都是主节点,且一个主节点可以有多个从节点(或没有从节点),但一个从节点只能有一个主节点。

主从复制的过程

  1. slave(从节点)与master(主节点)建立连接,发送sysync同步命令
  2. master会开启一个后台进程,将数据库快照保存到文件中,同时master主进程会开始收集新的写命令并缓存。
  3. 后台完成保存后,就将文件发送给slave
  4. slave将此文件保存到硬盘。

自己配置的主从复制

  1. 首先本地机器有三个虚拟机分别为192.168.164.129,192.168.164.131,192.168.164.132,并且全部安装了redis,
  2. 以192.168.164.129为主节点,192.168.164.131和192.168.164.132两台机器的redis为从节点,三台机器的redis端口都是6379
  3. 分别修改三台机器的redis配置文件redis.conf文件

设置redis的守护daemonize为yes默认是NO。

redis采用的是单进程多线程的模式。当redis.conf中选项daemonize设置成yes时,代表开启守护进程模式。在该模式下,redis会在后台运行,并将进程pid号写入至redis.conf选项pidfile设置的文件中,此时redis将一直运行,除非手动kill该进程。

当daemonize选项设置成no时,当前界面将进入redis的命令行界面,exit强制退出或者关闭连接工具(putty,xshell等)都会导致redis进程退出。
 

redis主从复制,主读不到从节点信息的坑

4.修改两台从服务器的redis配置文件redis.conf

slaveof 192.168.164.129 6379  即设置主节点redis的IP和端口

redis主从复制,主读不到从节点信息的坑

②修改配置文件(如果主节点redis设置密码的话,需要在从节点的配置文件中加上如下配置)我的没有设置

masterauth<master-password>

注意:此处需要关闭虚拟机linux系统的Linux防火墙

命令:service iptables stop

5.分别启动主节点redis(129机器)服务,从节点131和132机器的redis服务,输入info就可以看到主从信息

三台机器redis启动后输入info信息如下

192.168.164.129 输入info后的信息

redis主从复制,主读不到从节点信息的坑

192.168.164.131 输入info后信息如下

redis主从复制,主读不到从节点信息的坑

192.168.164.132 输入info后信息如下

redis主从复制,主读不到从节点信息的坑

 

有关daemonize参考如下

https://blog.csdn.net/lcyaiym/article/details/76863802