Redis主从同步
增量同步
主节点先将指令记录到环形 buffer 中,异步将 buffer 中的指令同步到从节点。
当 buffer 中数据满了的情况下,会覆盖前面的数据,导致同步时有数据丢失,这种情况需要快照同步来弥补。
快照同步
主节点进行 bgsave,将全量数据保存到磁盘,再将数据同步到从节点。
redis 也支持无盘复制,直接将快照数据通过套接字发送到从节点。
优化
如果快照同步的时间过长或者复制 buffer 太小,都会导致同步期间的增量指令在复制 buffer 中被覆盖,这样就会导致快照同步完成后无法进行增量复制,然后会再次发起快照同步,所以一定要配置一个合适的 buffer 大小。
Simple is Awesome