另外,slave 在关机并重新启动后,能够在 RDB 文件中存储所需信息,以便于 master 进行重同步。这在升级的情况下很有用。当需要时,最好使用 SHUTDOWN 命令来执行 slave 的保存和退出操作。
2 主从数据不一致
=========
主从网络延时:
主多从少
====
部分重同步。可以通过命令 PSYNC master_run_id offset 执行。
主少从多
====
全量复制,覆盖。这种情况是因为从节点读写模式导致的,关闭从节点读写模式,或者删除从节点数据,重新从主节点全量复制。
3 数据延迟
======
编写外部程序监听主从节点的复制偏移量,延迟较大时发出报警或通知客户端,切换到主节点或其他节点。
设置从节点slave-serve-stale-data为no,除INFO和SLAVOF命令之外的任何请求都会返回一个错误“SYNC with master in progress”。
当副本失去与mater的连接时或仍在进行复制时,副本可以如下方式起作用:
-
若 replica-serve-stale-data 设为“是”(默认值),则副本仍会回复客户端请求,可能带有过期数据,或者,如果这是第一次同步,则数据集可能只是空的
-
若将replica-serve-stale-data设为no,则该副本将对除以下信息以外的所有命令返回错误“SYNC with master in progress”:INFO,REPLICAOF,AUTH,PING,SHUTDOWN,REPLCONF,ROLE,CONFIG ,SUBSCRIBE,UNSUBSCRIBE,PSUBSCRIBE,PUNSUBSCRIBE,PUBLISH,PUBSUB,COMMAND,POST,HOST和LATENCY
4 脏数据
=====
4.1 脏数据产因
=======&#