可以通过配置项client-output-buffer-limit来配置这个buffer的大小。当保存到buffer里的内容超过限制,主库会强制断开这个client的连接。这样会有潜在风险。
如果从库处理主库传输的命令非常慢,就会把这个buffer撑满,然后主库会断开连接。中断后,从库再次发起复制请求,可能会导致恶性循环,引发复制风暴。
小结主从库模式是采用RDB快照的全量复制 + 基于长连接的网络通信实现主从复制的。
通过“主-从-从”模式,将主库生成RDB和传输RDB的压力,以级联的方式分散到从库上。
当网络中断,通过主库的repl_backlog_buffer,实现增量复制,无须重新全量复制。
repl_backlog_buffer是环形缓冲区,要根据网络状况,合理配置其大小。
一个Redis实例的数据库不要太大,在几GB比较合适,这样可以减少RDB文件生成、传输和重新加载的开销。
参考资料06 | 数据同步:主从库如何实现数据一致?