Redis学习笔记(六)主从复制

一.概述:

在Redis客户端通过info replication可以查看与复制相关的状态,对于了解主从节点的当前状态,以及解决出现的问题都会有帮助。
主从复制,是指将一台Redis服务器的数据,复制到其他的Redis服务器。前者称为主节点(master/leader),后者称为从节点(slave/follower);数据的复制是单向的,只能由主节点到从节点。
默认情况下,每台Redis服务器都是主节点;且一个主节点可以有多个从节点(或没有从节点),但一个从节点只能有一个主节点。
主从复制的作用主要包括:

  • 数据冗余:主从复制实现了数据的热备份,是持久化之外的一种数据冗余方式。
  • 故障恢复:当主节点出现问题时,可以由从节点提供服务,实现快速的故障恢复;实际上是一种服务的冗余。
  • 负载均衡:在主从复制的基础上,配合读写分离,可以由主节点提供写服务,由从节点提供读服务(即写Redis数据时应用连接主节点,读Redis数据时应用连接从节点),分担服务器负载;尤其是在写少读多的场景下,通过多个从节点分担读负载,可以大大提高Redis服务器的并发量。
  • 高可用基石:除了上述作用以外,主从复制还是哨兵和集群能够实施的基础,因此说主从复制是Redis高可用的基础。

二.配置命令

只配从库不配主库

slaveof 主机IP 主库端口

每次与master断开之后,都需要重新连接,除非你配进redis.conf文件

三.做个例子

我们做一个一主二仆的例子
**第一步:**配置文件,首先我们准备三个配置文件,redis01.config,redis02.config,redis03.config
然后将三个文件的daemonize全调为yes

daemonize yes

再将端口号设为不同,比如6379,6380,6381

port 6380

然后我们将pid文件全部设为自己对应的redis01.pid,redis02.pid,redis03.pid

pidfile /var/run/redis02.pid

接着我们将log文件也取个名字01.log,02.log,03.log

logfile "02.log"

接下我们将他们一起启动
**第二步:**启动
首先我们往redis01主机中写几个数据,然后将另两个从机绑定上,我们会发现从机上也存在这些数据。
然后我们往两个从机写数据会发现两个从机是只读模式。
我们将第一个从机断开与主机连接,接下来我们发现他变成主机。
然后我们将主机退出,会发现从机原地待命,没有夺权篡位。
刚从我们做的实验是一组两仆式,我们来看看薪火相传式

Redis学习笔记(六)主从复制_第1张图片
上一个Slave可以是下一个slave的Master,Slave同样可以接收其他slaves的连载和同步请求,那么该slave作为了链条中下一个的master,可以有效减轻master的写压力。
如果发生中途变更转向:会清除之前的数据,重新建立拷贝最新的

Slaveof 新主库IP 新主库端口

四.哨兵模式

反客为主的自动版,能够后台监控主机是否故障,如果故障根据投票数自动将从库转换成主库

你可能感兴趣的:(Redis)