如果master不开启持久化则不能启用自动拉起,以免把slave数据刷空
1.采用cluster模式
2.单节点内存小于10g
3.预留30%内存
4.调整主从同步配置
5.持久化策略
6.增强报警机制
7.低峰期执行slave同步
8.一个一个slave同步
9.使用运维工具
10.扩容策略
(1)主节点bgsave,如果RDB文件过大,主节点在fork子进程+保存RDB文件时耗时过多,
可能会导致从节点长时间收不到数据而触发超时;此时从节点会重连主节点,然后再次全量复制,再次
超时,再次重连……。为了避免这种情况的发生,除了注意Redis单机数据量不要过大,另一方面就是适
当增大repl-timeout值,具体的大小可以根据bgsave耗时来调整。
(2)在全量复制阶段,主节点会将执行的写命令放到复制缓冲区中,该缓冲区存放的数据包括了以下
几个时间段内主节点执行的写命令:bgsave生成RDB文件、RDB文件由主节点发往从节点、从节点载入
RDB文件中的数据。当主节点数据量较大,或者主从节点之间网络延迟较大时,可能导致该缓冲区的大
小超过了限制,此时主节点会断开与从节点之间的连接;这种情况可能引起全量复制->复制缓冲区溢出
导致连接中断->重连->全量复制->复制缓冲区溢出导致连接中断……的循环,调整client-output-buffer-limit
的值
3.主从同步-配置
8. repl-ping-slave-period
9.repl-backlog-size 1mb
10. repl-backlog-ttl 3600
11.min-slaves-to-write 0
12. min-slaves-max-lag 10
13.slave-serve-stale-data yes
14. slave-read-only yes