【Redis入门】-浅谈主从复制(一)

Redis的复制:

1. 是什么:redis中的复制(master/slave)主从复制,主机数据更新后根据配置和策略自动同步到备机的master/slaver机制,master以写为主,slaver以读为主

2. 作用:读写分离、容灾恢复

今天我们来了解一下主从复制策略之一主二仆

顾名思义,这种策略的具体实现就是使用一台机器作为主机,两台机器作为备机(真正工作可能多台),主机主要是写入,备机主要是读取。需要注意的是,再使用主从复制的时候,是配置备机,主机不动(默认状态是master,从机需要改变master状态到slaver)。

配置命令:slaveof + 主机ip + 主机端口,一下是测试用例(单机版):

首先,既然要模拟三台机器,需要再不同的端口启动分别redis,那么我们需要复制三份配置文件(一主二仆共三个),然后对配置文件进行简单的修改,下面以6379(作为主机)来演示:

1. cp命令复制.conf文件,修改其中的几个配置参数:

    1>. pidfile /.../6379.pid;

    2>. 端口号是6379;

    3>. log文件:logfile "6379.log";

    4>. dump文件:dbfilename dump6379.rdb

其他配置文件与这个一样,就是使用对应额度端口号就可以了,起到区分的作用。

2. 现在就可以再不同的端口启动redis,启动之后的效果如图所示:

这是效果图,我们以端口6379的redis为主机,其他两个6380、6381作为从机使用。

3. 这个时候我们先使用info replication命令查看每个机器的状态,可以看到三个服务均是master,连接的slaver均是0.

4. 现在我们可以使用 slaveof命令来设置从机,让80、81端口的redis作为从机连接到79端口的redis,命令语法上文提到过,效果如下图所示:

可以看到连接之后再次使用 info replication查看,80、81端口已经变成slaver了,并且显示其连接的master就是127.0.0.1 8079这个redis。

现在重点来了,这个主从复制都有什么特性呢:

1. 一旦连接上主机,那么从机立即回复制主机上的所有数据给自己,并且,以后主机每次写入操作,都会复制一份给从机上面,上面的例子中,端口79的主机事先是有两条数据的,分别是k1、k2,现在连接上之后,主机再次存储一条k3。然后读取从机数据,效果如下:

可以看到,一旦连接上,那么主机链接前和连接后的所有数据都将复制一份给从机,这是rediis主从复制的一条策略;

2. 我们说再主从复制上,通常是主机负责写入,从机负责读取,那么,如果从机也写入操作会发生什么呢?我们举个例子看一看:

可以发现,对于只读的从机是没有办法读取数据的;

3(重点).如果主机挂掉了,那么回怎么样呢,从机会不会变成主机代替?下面我模拟一下这个过程:

 

如图所示,我先再再79主机上面shutdown,并且退出,然后,我再次查看从机状态,可以看到从机状态依然是slaver,也就是等待连接,待命,并且显示从机依然连接的是127.0.0.1 6379这个redis,只不过连接状态是down,那么现在,我再次启动6379redis:

可以看到,一旦重新启动主机redis,立即与从机连接上了(注意,这张图的从机的状态是我shutdown之后重启主机之前的状态,所以其连接状态显示down),重新连接之后,主机存储,从机依然回复制,即一切不变。

4.(重点):如果从机挂掉了,又会发生什么呢?

 

如图可以看到,我将左侧的80端口的从机shutdown了,然后再次连接,查看状态显示此时这个redis已经变成master了,并且连接数是0,这就是说,如果从机挂掉了,重新启动之后之前的连接也就断开了,若想使用必须想重新连接(需要注意的是,可以使用配置文件进行配置,这样即使从机重启,他也会自动连接对应的主机)。

总结:redis主从复制-一主二仆拥有特性:

1. 一旦转成从机,主机之前的所有数据也将会被备份
2. 如果主机与从机都执行set方法,那么从机失败,从机没有权限写入操作
3. 如果主机shutdown(死了),那么从机依然是slave原地待命,连接状态变成down,此时如果主机重启,主机再存储,从机以来可以获取,即连接不变
4. 如果从机死了,若再次重启,则变成master, ,断开连接,即,slaver与master断开连接之后,除非使用配置文件进行配置,要不然需要重新连接

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值