Redis复制原理简述

2020-07-29  本文已影响0人  花醉霜寒

Redis的复制功能包括同步和命令传播两个方面内容,

全量同步过程

如果从服务器网络异常与主服务器断开连接,通过自动重连与主服务器重新建立了连接,此时如果主服务器执行了写操作,那么重连的从服务器的状态与主服务器的状态不一致,此时应该如何进行同步?
Redis中的同步分为全量同步和部分同步,上述同步过程就是全量同步的过程,通常发生在从节点第一次与主节点建立连接或者从节点落后主节点太多的情况下,但是这种方法比较消耗资源,所以出现了部分不同的方式来处理网络抖动带来的不一致情况,
部分同步只需要处理从服务器落后主服务器的那部分数据就可以了。

部分同步的实现

部分同步依赖于三个重要的组件

如下所示,执行INFO replication命令,可以查看复制状态,

# Replication
role:master
connected_slaves:2
slave0:ip=10.89.232.12,port=6389,state=online,offset=104223804,lag=0
slave1:ip=10.89.232.85,port=6389,state=online,offset=104223804,lag=1
master_replid:785665f3ce0213c95a01fc3bde68a14bfba71808
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:104223804
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:103175229
repl_backlog_histlen:1048576


当前服务器有两个slave,三个服务器的offset相等表明当前slave与master保持同步,复制积压缓冲区的大小设置为1048576个字节。

复制过程

复制主要包括如下步骤:

上一篇 下一篇

猜你喜欢

热点阅读