redis主从复制(Master/Slave)

1、是个撒

主机数据更新后,根据配置和策略,自动同步到备机的Master/Slave机制。简单来说就是主机如果宕机,迅速将指针指向从机继续使用。Master以写为主,Slave以读为主。

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

3、缺点:由于所有的写操作都是在master上操作,然后同步更新到slave上,所以这个过程有一定的延迟。当系统很繁忙的时候,延迟问题会更加严重,slave机器数量的增加也会使得这个问题更加严重。

4、怎么实现

(1)、配从不配主,从库配置:slaveof 主库ip 主库端口

(2)、修改配置文件细节操作

A:拷贝多个redis.conf文件

B、开启daemonize yes

C、Pid文件名字

D、指定端口

E、Log文件名字

F、Dump.rdb文件名字

5、常用三招

1)、一主二仆:

2)、薪火相传:去中心化减少主机负载,但是产生复制延时。中途变更转向:会清除之前的数据,重新建立拷贝最新的,以保证数据的完整一致有效性。

3)、反客为主:主机宕机从机上位。Slaveof no one(从机上位的渠道),其他从机执行命令连接刚上位的主机。

6、常见问题总结

(1)、只有主机可以写数据(一主二仆)

(2)、主机宕机,从机原地待命;主机恢复,主从复制体系照旧(一主二仆)

(3)、从机宕机,需要重新连接,除非配置redis.conf文件(一主二仆)

(4)、中间机器的身份:从机(薪火相传)

(5)、主机恢复之后:与新建立的主从体系无关(反客为主)

7、复制原理:slave启动成功连接到master后会发送一个sync命令。Master接收到命令之后启动后台的存盘进程,同时收集所有接收到的用于修改数据集的命令,在后台进程执行完毕之后,master将传送整个数据文件到slave,以完成一次完全同步

全量复制:slave接收到数据库文件数据之后,将其存盘并加载到内存中

增量复制:master继续将新的所有收集到的修改命令依次传给slave,完成同步

只要是重新连接master,全量复制将被自动执行

8、最狠的一招:哨兵模式(简单来说就是反客为主的自动版)

也就是说有个monitor在监控,主机宕机,根据投票数自动将从机转成主机

(1)怎么实现:

A:自定义的redis目录下创建sentinel.conf文件,配置(sentinel monitor 被监控主机名字 ip地址 端口号1

B:启动哨兵redis-sentinel sentinel.conf配置文件的目录

(2):原主机恢复身份变为从机,自动连接刚才新选举的主机

(3):一组sentinel可以同时监控多个master

猜你喜欢

转载自blog.csdn.net/aubrey_cr7/article/details/80754698