读写分离
- 数据复制延迟;
- 读到过期数据;
- 从节点故障;
主从配置不一样
- maxmemory 不一致;
- 数据结构优化参数,比如:
hash-max-ziplist-entries
,主节点优化了,从节点没优化,导致的内存不一致问题;
规避全量复制
- 第一次连接到 master 上,无法避免全量复制;
- 设置小主节点;
- 在低峰做全量复制;
- 节点运行 ID 不匹配,比如主节点重启(运行 ID 变化)导致的全量复制,可用故障转移来解决,例如哨兵或集群;
- 复制积压缓冲区(repl_back_buffer)不足,可以通过配置其大小
rel_backlog_size
来解决;
规避复制风暴
- 单主节点复制风暴:主节点重启,多从节点复制,可通过变更复制拓扑解决;
- 单机器复制风暴:一台机器上有多个 master,机器重启后,所有的 master 都会进行全量复制,可以把 master 分布在多个机器上解决,更好的办法是高可用方案,master 挂掉,slave 晋升为 master;