Redis的主从复制master-slave

master-slave是指:主机数据更新后根据配置和策略,自动同步到备机的master/slave机制,master以写为主,slave以读为主;
redis的主从复制配置是在从库上配置的,配置的命令为:

slaveof 主库IP 主库端口

下面是配置的过程示意图:

一、更改配置

(1)拷贝多个redis.conf文件
在这里插入图片描述
(2)在redis6380.conf 和redis6381.conf这两个文件中更改如下配置:
在这里插入图片描述

  • 开启daemonize yes
  • pid文件名字
  • 指定端口号
  • log文件名字
  • dump.rdb名字

修改之后的文件内容为:
在这里插入图片描述

redis6380.conf 中:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
redis6381.conf文件中:
Redis的主从复制master-slave_第1张图片
在这里插入图片描述
Redis的主从复制master-slave_第2张图片
Redis的主从复制master-slave_第3张图片

二、开启多个redis客户机

Redis的主从复制master-slave_第4张图片
在没有任何配置的情况下,三个客户机都是master,没有任何关系;

三、设置主库和从库模式 - 一主二仆:即 一个master有多个slave

将6380和6381这两个端口的客户机设置为6379这个端口的客户机的slave;

在6380端口的这个客户机上:使用命令 slaveof 127.0.0.1 6379
Redis的主从复制master-slave_第5张图片’在6381端口的这个客户机上:使用命令 slaveof 127.0.0.1 6379
Redis的主从复制master-slave_第6张图片

四、再次查看三个客户机的状态

使用命令:info replication
Redis的主从复制master-slave_第7张图片
Redis的主从复制master-slave_第8张图片
Redis的主从复制master-slave_第9张图片

可以看见:6379端口的客户机是master,有两个slave;
6380端口和6381端口的客户机是slave,他们的主库master的端口是6379

五、测试

在主库6379端口的客户机上插入数据:
Redis的主从复制master-slave_第10张图片

然后发现,在6380端口和6381端口的客户机上都可以获取到数据
Redis的主从复制master-slave_第11张图片
Redis的主从复制master-slave_第12张图片

六、 在主从模式中,如果主库挂了,则从库是原地待命,不会上位;当主库回来后,从库依旧照旧

在这里我们将6379端口的这个主库退出:
在这里插入图片描述
再次查看6380端口和6381端口的客户机发现:这两个客户机仍然是slave模式,而不会因为主库挂掉就变成master
Redis的主从复制master-slave_第13张图片
Redis的主从复制master-slave_第14张图片

七、设置主从模式 - 薪火相传:即 上一个slave可以是下一个slave的master,slave同样可以接收其他slave的连接和同步请求

设置6380端口的客户机是6379端口的客户机的slave;6381端口的客户机是6380端口的客户机的slave
Redis的主从复制master-slave_第15张图片
Redis的主从复制master-slave_第16张图片
查看6379端口客户机的状态信息
Redis的主从复制master-slave_第17张图片

八、测试

在6379端口客户机上插入数据:
Redis的主从复制master-slave_第18张图片
会发现:在6380端口客户机和6381端口客户机上都能查询到数据
Redis的主从复制master-slave_第19张图片
在这里插入图片描述

九、slaveof no one :使当前数据库停止与其他数据库的同步,转为主数据库;

的基础上,在6380端口的客户机上执行slaveof no one命令 :
发现:6380端口的客户机不再是6379端口客户机的从库slave了,6380端口的客户机不再与6379端口客户机同步了,6379端口客户机变成了master;

Redis的主从复制master-slave_第20张图片
Redis的主从复制master-slave_第21张图片
Redis的主从复制master-slave_第22张图片

你可能感兴趣的:(Redis)