redis学习之——主从复制(replication)
mater:主机,进行写操作
slave:从机,进行读操作
一、配置
继续前边的学习。我们是拷贝redis.conf,文件到了/root /redis 下。现在复制三分。并做修改。如下
cp redis.conf redis6379.conf
修改配置文件:以单个文件为列,修改守护启动(后台启动),运行文件位置,端口,日志文件,dump备份文件,
那么redis6380.conf redis6381.conf做同样,已端口为准的修改。
2)启动:
修改配置部分我们是为了模拟三台机器(即用三个配置文件分别启动redis)达到,主从复制Master/Slave(一主两辅的效果)
3)实现一主两从
在80,81俩个机器上用命令如下,把这台127.0.0.1 6379 机器 是为主机
slaveof 127.0.0.1 6379
4)验证主从复制
1)情况一:如过三台机并没有配置主从,6379的机器,,现行进行写操作,那么在设置6380,6381为6379的从机,即上一步操作。那么之前的写操作是否会复制。
答案:会。这样的情况从机会吧主机之前写操作,,都复制一遍,全量复制,接下来如,set k4 ,get k4 ,get k4 会进行增量复制。
2)情况2:如果主机宕机,那么80,81从机的角色,会发生改变吗?还是原地待命。
答案:不会,原地待命。
3)接着2)情况2,如果主机上线,我们设置的主从是否会乱套。。
答案:不会。
4)如果从机宕机期间,主从角色会发生变化吗?主机写入了数据,,那么从机上线后,,是否依旧会复制主机刚刚写入的数据?
答案: 从机宕机,原先的一主两从,会变成一主一从。。且从机上线如果没有在配置文件中(我么这里没有配置),配置的话
,新上线的从机的角色(slave)会变成主机角色(master)。从机上线后的设置为6379的机器为主机,,才可获取数据。如下图:
5)从机是否可以写入数据?
答案:不可以,只读。
5)、薪火相传
上一个Slave可以是下一个slave的Master,Slave同样可以接收其他,slaves的连接和同步请求,那么该slave作为了链条中下一个的master,
可以有效减轻master的写压力。。中途变更转向:会清除之前的数据,重新建立拷贝最新数据。
1)、在一主两从的基础上修改
在6381键入命令:slaveof 127.0.0.1 6380
6)、反客为主
slaveof no one
7)、哨兵模式
其实就是反客为主的自动执行,反客为主是我们人为手动设置。而哨兵模式,是系统自动监视主机,,如果主机shutdown了。。那么在其从机中投票选出主机,自动形成一套主从模式。。shutdown 的机器从新上线后为从机。。
(1)在/root/redis 下新建文件sentinel.conf(touch sentinel.conf )
(2)启动哨兵
redis-sentinel /redis/setninel.conf
(3)验证哨兵模式(并留意检测日志)