一:作用

可以把master的数据同步到slave中保存,增强数据安全性。

可以分散来自客户端的读请求,降低master的压力。


二:过程:

1、slave连接master时候,master会执行BGSAVE操作。所以master中须保证已配置dir和dbfilename选项,并且所指路径和文件对于redis是可写的。


2、主从复制的设置方式:

a、在slave的conf中:slaveof   master<ip>  master<port>       ,slave启动时,就会去连接master。

b、如果slave正在运行,用户可以发送指令:slaveof  master<ip>  master<port>  来连接master。   (slaveof  no  one命令终止复制)


3、复制的启动过程:

redis深入—主从复制

实际运用中,master最好只使用50%-65%的内存,留下一定的内存用于BGSAVE命令和创建用于记录写命令的缓冲区,否则会影响redis处理命令请求的效率(主从服务器间的网络宽带不足也会影响)。


4、当多个从连接一个主时,可能出现以下之一:

redis深入—主从复制


5、主从链:就是slave可以有slave

redis深入—主从复制


同时使用AOF和主从复制,可以将数据持久化到多台机器。当然,这得保证需要持久化的服务器上开启了AOF相关配置(appendonly  yes和appendfsync  everysec)。

上面认识了主从复制和主从链,什么情况下使用?

1、读请求的重要性明显高于写,并且请求的数量远远超出一台redis可以处理的范围,这时候需要添加服务器,就可以使用主从复制。

2、master无法快速更新所有slave,或者因重新连接和重新同步slave导致系统超载,可以使用主从链,不要把所有的slave绑定到一台master上。



注:slave其实是可以接受写命令的,修改slave配置文件中的slave-read-only no则可,,slave接受的写操作时不会同步到master的,一般也不会这么做…

相关文章: