Redis主从常见问题

为什么在从机AOF配置成功的情况下,主机开启AOF,主从数据瞬间被清空?

首先得明白Redis有这么一个特性,即两种持久化同时开启的情况下,Redis启动默认加载AOF文件恢复数据。

Redis从机由于事先没有开启AOF,配置重启后,从机会生成一个空的AOF文件并默认加载,这时从机数据是空的,但由于配置了主从,从机会同步主机数据,所以你会发现新生成的AOF文件大小在迅速增长。因此Redis从机开启AOF后,数据最终是没有问题的。

这时候Redis主机也配置AOF并重启,主机生成AOF并默认加载,数据瞬间被清空,同时主机RDB发现60秒内有超过10000个key被修改,发起了快照保存,RDB数据也被清空。由于都是内存操作,所以非常快。最后再主从同步,所有数据被删。

配置不一致

1)例如maxmemory不一致 : 丢失数据

2)例如数据结构化参数(hash-max-ziplist-entries) : 内存不一致

规避全量复制

1)第一次全量复制

  • 第一次不可避免

  • 小主节点、低峰

2)节点运行ID不匹配

  • 主节点重启(运行ID变化)

  • 故障转移,例如哨兵或集群

3)复制积压缓冲区不足

  •  网络中断,部分复制无法满足

  • 增大复制缓冲区配置 rel_backlog_size ,网络"增强"

原文地址:https://www.cnblogs.com/yhq-qhh/p/10089696.html