主从复制是指将一台Redis服务器的数据,复制到其它的Redis服务器。前者称为主节点(master),后者称为从节点(slave);数据的复制是单向的,只能由主节点到从节点。默认情况下,每台Redis服务器都是主节点,且一个主节点可以有多个从节点(或没有从节点),但一个从节点只能有一个主节点。
主从复制的过程
- slave(从节点)与master(主节点)建立连接,发送sysync同步命令
- master会开启一个后台进程,将数据库快照保存到文件中,同时master主进程会开始收集新的写命令并缓存。
- 后台完成保存后,就将文件发送给slave
- slave将此文件保存到硬盘。
自己配置的主从复制
- 首先本地机器有三个虚拟机分别为192.168.164.129,192.168.164.131,192.168.164.132,并且全部安装了redis,
- 以192.168.164.129为主节点,192.168.164.131和192.168.164.132两台机器的redis为从节点,三台机器的redis端口都是6379
- 分别修改三台机器的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进程退出。
4.修改两台从服务器的redis配置文件redis.conf
①slaveof 192.168.164.129 6379 即设置主节点redis的IP和端口
②修改配置文件(如果主节点redis设置密码的话,需要在从节点的配置文件中加上如下配置)我的没有设置
masterauth<master-password>
注意:此处需要关闭虚拟机linux系统的Linux防火墙
命令:service iptables stop
5.分别启动主节点redis(129机器)服务,从节点131和132机器的redis服务,输入info就可以看到主从信息
三台机器redis启动后输入info信息如下
192.168.164.129 输入info后的信息
192.168.164.131 输入info后信息如下
192.168.164.132 输入info后信息如下
有关daemonize参考如下