Redis服务器的主从复制
本文章会简单介绍redis中的主从复制。
下面切入正题咯:
主从复制的一些总结(自用总结 不喜勿喷):
通过主从复制允许多个slave server拥有和master server相同的数据副本或称为其映像
相当于从服务器可以把主服务器数据库复制
主从复制特点:
1.master可以拥有多个slave服务器
master:slave = 1:N
2.多个slave除了连接到同一个master以外,还可以连接到其他的slave,也就是说他们之间也是可以相连的。此外slave可连接到另外一个没有连接到他们master的slave服务器(记作slaveTMP)。为了防止服务停止即出现master服务器宕机,原有的master服务器不可访问,这时slaveTMP服务器会自动替代原有的master成为其他slave的新master,以保证服务的正常进行。
3.主从复制不会阻塞master,在同步数据时,master会继续处理他们的请求。即主服务器在响应从服务器的请求时,不会影响自身写入服务器操作。
4.提高系统的伸缩性
主从复制过程详解:
slave服务器向主机master请求同步命令时,此时master主机会后台开启一个新的后台进程,将当前数据库中的数据快照备份到一个文件中,在此同时 如果有写命令发送给master主机,这个写命令并不会受到影响,master主进程会开始收集新的命令并缓存。两个进程会同时进行。并将此写内容也写入文件中,当写文件执行完毕后,主服务器master会将此文件发送给从服务器。slave服务器接收到此文件并写入slave服务器的硬盘中。当slave服务器再次启动时会加载此文件,并将此文件中的数据映射到slave的数据库中。
主从复制配置详解:
配置slave从服务器,将从服务器slave的配置文件(./etc/redis.conf)加入以下配置:
配置文件中形式为:
slaveof <masterip> <materport>
[masterauth <master-password> 可选]
实例如:
slaveof 192.168.1.1 6379 #指定master的IP地址以及端口
[
masterauth #主服务器的密码
(如果有,没有可不写此配置)
]
redis中输入info命令可查看当前服务器角色(分别主从)
在显示的服务器详细信息中
从服务器输入info后可查看role,master_link_status选项
role:会显示本机的角色 eg.从服务器为role:slave
master_link_status:当前服务器连接主机状态 e.g.从服务器为master_link_status:up
主服务器可查看role,
role:会显示本机的角色 eg.主服务器为role:master
slave*:会显示连接的从属服务器的ip地址和端口号以及当前的状态信息,eg.slave0:192.168.1.2,6379,online