1. 什么是Redis主从模式?
- 主从模式本质
通常提供服务的时候,开启一个redis实例即可。但是如何保障一个实例出现异常,而不中断服务或者怎么能最小数据损失层度下恢复服务,例如机器宕机,程序崩溃,网络异常。而主从模式最主要的既是解决这个问题,在“主”出现问题的时候,由“从”来接管继续提供服务,以保障服务不中断。
2. 主从模式配置?
- 从配置
- slaveof <masterip><masterport>
master的ip和port- masterauth <master-password>
master启用的认证,即master的密码- slave-serve-stale-data yes
如果yes,既是在主从连接断开时从能够提供服务,如果是no,那么不能提供服务- slave-read-only yes
如果yes,仅仅是提供读的服务,如果是no,则读写都可以- slave-priority 100
slave的优先级;当有多个从的时候可以通过这个来进行判定选择哪个从作为新主
- 主配置
- repl-diskless-sync no
是否启用diskless主从同步模式:后面会详细讲解主从同步的disk和diskless原理- repl-diskless-sync-delay 5
如果是diskless,延时多久正式开始主从同步- repl-ping-slave-period 10
主多久对从进行心跳探活- repl-disable-tcp-nodelay no
使用diskless时是否关闭nodelay。即是否允许小包快速发送,默认是no,即对于redis要求低延时,快速的话还是开启nodelay((如果主从是同一网段的)。但是这样可能会造成网络压力加大- repl-backlog-size 1mb
主从同步的一个异常缓冲区,提供一定层度主从连接异常情况下的重传效率- repl-backlog-ttl 3600
设定缓存多久失效,如果有从的情况下是不会失效的- min-replicas-to-write 3 (与下面的8是一起的)
- min-replicas-max-lag 10
用来控制当主从连接有异常的情况下主是否提供对外服务;
默认是没有配置这些的:这个示例的意思是对于一个写请求至少要保证有3个slave在10s时间内和主的连接是正常的
- 主从配置
-
repl-timeout 60
主从连接超时时间
3. 主从同步流程
-
主从身份确认流程
-
全量数据-diskless
-
全量数据-disk
-
增量数据流程
-
全量对比
4. 主从同步演进
如果觉得有收获就点个赞吧,更多知识,请点击关注查看我的主页信息哦~