zoukankan      html  css  js  c++  java
  • redis的repl-ping-slave-period和repl-ping-replica-period

    网上很多Redis方面的文章,会涉及到repl-ping-slave-periodrepl-ping-replica-period这两个重要参数,从一些中文解释来看,意思差不多,即:SLAVE周期性的ping MASTER间隔,可直接理解成SLAVE -> MASTER间的心跳间隔(注意箭头方向)。

    没有一篇文章同时提取这两者,总是分开出现在不同文章中。在官方的配置文件redis.conf5.0版本之前的均使用repl-ping-slave-period,而从5.0开始变成了repl-ping-replica-period,也就是说这两个其实是同一个东西。实际上因为一些非技术原因,很多软件将slave改成了replicaRedis也同样如此,所以replicaslave完全相同的。

    为了兼容,5.0同时支持两种用法(其它配置项也同样命运,如:slaveof改成了replicaof):

            } else if ((!strcasecmp(argv[0],"repl-ping-slave-period") ||

                        !strcasecmp(argv[0],"repl-ping-replica-period")) &&

                        argc == 2)

            {

                server.repl_ping_slave_period = atoi(argv[1]);

                if (server.repl_ping_slave_period <= 0) {

                    err = "repl-ping-replica-period must be 1 or greater";

                    goto loaderr;

                }

            }

    常用命令变化,但5.0仍然兼容的配置项(实际上所有的slave都改成了replica,包括一些官方网站的文档,不过代码中的变量名保持未变,仍就为slave):

    <5.0版本

    >=5.0版本

    repl-ping-slave-period

    repl-ping-replica-period

    slaveof

    replicaof

    slave-priority

    replica-priority

    slave-read-only

    replica-read-only

    slave-serve-stale-data

    replica-serve-stale-data

    cluster-slave-validity-factor

    cluster-replica-validity-factor

    配置项说明(注意命名包含cluster的为集群专有配置项):

    默认值

    单位

    repl-ping-replica-period

    10

    定义心跳(PING)间隔。

    repl-timeout

    60

    这个参数一定不能小于repl-ping-replica-period,可以考虑为repl-ping-replica-period的3倍或更大。定义多长时间内均PING不通时,判定心跳超时。对于redis集群,达到这个值并不会发生主从切换,主从何时切换由参数cluster-node-timeout控制,只有master状态为fail后,它的slaves才能发起选举。

    cluster-node-timeout

    15000

    毫秒

    集群中的节点最大不可用时长,在这个时长内,不会被判定为fail。对于master节点,当不可用时长超过此值时,它slave在延迟至少0.5秒后会发起选举进行failover成为master。Redis集群的很多其它值与cluster-node-timeout有关。

    cluster-slave-validity-factor

    10

    如果设置为0,则slave总是尝试成为master,无论slave和master间的链接断开时间的长短。如果是一个大于0的值,则最大可断开时长为:(cluster-slave-validity-factor * cluster-node-timeout)。例如:当cluster-node-timeout值为5,cluster-slave-validity-factor值为10时,slave和master间的连接断开50秒内,slave不会尝试成为master。

    repl-timeoutcluster-node-timeout的区别:

    默认值

    单位

    repl-timeout

    60

    决定复制超时,并不能决定slave发起选举,也不决定master何时为fail

    cluster-node-timeout

    15000

    毫秒

    决定master何时为fail,在fail后,slave会发起选举

  • 相关阅读:
    mac 电脑自动登录服务器
    prometheus-operator 监控 k8s 外部集群
    生产prometheus-operator 监控二进制kubernetes
    微信小程序-nginx-https 代理后端服务
    Redis 高可用之哨兵模式
    Redis 高可用之数据持久化
    服务之间连接不上问题分析
    prometheus 告警指标
    错误代码:0x800706BE 解决方法
    泛微OA服务器更改IP地址后EMobile出现“调用远端服务器接口时发生错误(122)”的提示
  • 原文地址:https://www.cnblogs.com/aquester/p/10229433.html
Copyright © 2011-2022 走看看