redis学习之——主从复制(replication)

时间:2021-08-10 22:49:26

准备:拥有linux环境,并安装redis

mater:主机,进行写操作

slave:从机,进行读操作

一、配置

继续前边的学习。我们是拷贝redis.conf,文件到了/root /redis 下。现在复制三分。并做修改。如下

cp redis.conf redis6379.conf

redis学习之——主从复制(replication)

修改配置文件:以单个文件为列,修改守护启动(后台启动),运行文件位置,端口,日志文件,dump备份文件,

那么redis6380.conf  redis6381.conf做同样,已端口为准的修改。

redis学习之——主从复制(replication)

redis学习之——主从复制(replication)

redis学习之——主从复制(replication)

2)启动:

修改配置部分我们是为了模拟三台机器(即用三个配置文件分别启动redis)达到,主从复制Master/Slave(一主两辅的效果)

redis学习之——主从复制(replication)

3)实现一主两从

在80,81俩个机器上用命令如下,把这台127.0.0.1 6379 机器 是为主机

slaveof 127.0.0.1 6379

redis学习之——主从复制(replication)

4)验证主从复制

1)情况一:如过三台机并没有配置主从,6379的机器,,现行进行写操作,那么在设置6380,6381为6379的从机,即上一步操作。那么之前的写操作是否会复制。

redis学习之——主从复制(replication)

redis学习之——主从复制(replication)

答案:会。这样的情况从机会吧主机之前写操作,,都复制一遍,全量复制,接下来如,set   k4  ,get k4  ,get k4 会进行增量复制。

2)情况2:如果主机宕机,那么80,81从机的角色,会发生改变吗?还是原地待命。

redis学习之——主从复制(replication)

答案:不会,原地待命。

3)接着2)情况2,如果主机上线,我们设置的主从是否会乱套。。

redis学习之——主从复制(replication)

答案:不会。

4)如果从机宕机期间,主从角色会发生变化吗?主机写入了数据,,那么从机上线后,,是否依旧会复制主机刚刚写入的数据?

redis学习之——主从复制(replication)

答案: 从机宕机,原先的一主两从,会变成一主一从。。且从机上线如果没有在配置文件中(我么这里没有配置),配置的话

,新上线的从机的角色(slave)会变成主机角色(master)。从机上线后的设置为6379的机器为主机,,才可获取数据。如下图:

redis学习之——主从复制(replication)

5)从机是否可以写入数据?

redis学习之——主从复制(replication)

答案:不可以,只读。

5)、薪火相传

上一个Slave可以是下一个slave的Master,Slave同样可以接收其他,slaves的连接和同步请求,那么该slave作为了链条中下一个的master,
可以有效减轻master的写压力。。中途变更转向:会清除之前的数据,重新建立拷贝最新数据。

1)、在一主两从的基础上修改

在6381键入命令:slaveof  127.0.0.1 6380

redis学习之——主从复制(replication)

redis学习之——主从复制(replication)

6)、反客为主

slaveof no one

redis学习之——主从复制(replication)

7)、哨兵模式

其实就是反客为主的自动执行,反客为主是我们人为手动设置。而哨兵模式,是系统自动监视主机,,如果主机shutdown了。。那么在其从机中投票选出主机,自动形成一套主从模式。。shutdown 的机器从新上线后为从机。。

(1)在/root/redis 下新建文件sentinel.conf(touch sentinel.conf )

redis学习之——主从复制(replication)

(2)启动哨兵

redis-sentinel /redis/setninel.conf

redis学习之——主从复制(replication)

(3)验证哨兵模式(并留意检测日志)

redis学习之——主从复制(replication)

redis学习之——主从复制(replication)