redis主从同步期间发送的各种命令和各种超时
来源:互联网 发布:linux如何卸载jdk 编辑:程序博客网 时间:2024/06/12 22:29
同步期间发送的命令:
1.从服务器向主服务器发送1种命令:REPLCONF ACK offset
这个命令是主从完成同步后,从服务器定期向主服务器发送的命令。
作用有2个:1. if offet > c->repl_ack_off : c->repl_ack_off = offset
2. c->repl_ack_time = server.unixtime
2.主服务器向从服务器发送2种命令:a."\n" b.PING
a."\n"是主服务器向等待 bgsave的从服务器发送的命令
作用:if (buf[0] == '\0') server.repl_transfer_lastio = server.unixtime
b.PING是主服务器向server.slaves中的从服务器发送的命令。在server.slaves中的从服务器状态处于: START或END。
作用:1. c->lastinteraction = server.unixtime;
2. if (c->flags & REDIS_MASTER) c->reploff += nread;
同步期间各种超时判断:
1.从服务器会进行3种超时判断:
if (server.masterhost&& (server.repl_state == REDIS_REPL_CONNECTING|| server.repl_state == REDIS_REPL_RECEIVE_PONG)&& (time(NULL) - server.repl_transfer_lastio)> server.repl_timeout) {undoConnectWithMaster();}/* Bulk transfer I/O timeout*/if (server.masterhost && server.repl_state == REDIS_REPL_TRANSFER&& (time(NULL) - server.repl_transfer_lastio)> server.repl_timeout) {replicationAbortSyncTransfer();}/* Timed out master when we are an already connected slave?*/if (server.masterhost && server.repl_state == REDIS_REPL_CONNECTED&& (time(NULL) - server.master->lastinteraction)> server.repl_timeout) {freeClient(server.master);}
if ((server.unixtime - slave->repl_ack_time)> server.repl_timeout) {char ip[REDIS_IP_STR_LEN];int port;if (anetPeerToString(slave->fd, ip, sizeof(ip), &port) != -1) {//redisLog(REDIS_WARNING,// "Disconnecting timedout slave: %s:%d",// ip, slave->slave_listening_port);}// 释放freeClient(slave);}
0 0
- redis主从同步期间发送的各种命令和各种超时
- Redis的源码安装和主从同步
- Redis的主从同步
- Redis (三 redis的事务和主从同步)
- Redis (三 redis的事务和主从同步)
- MySQL的各种网络IO超时的用法和实现
- Redis的主从同步操作
- redis的各种用法
- Redis 的数据结构,持久化和主从同步
- HttpWebRequest的GetResponse或GetRequestStream偶尔超时 + 总结各种超时死掉的可能和相应的
- HttpWebRequest的GetResponse或GetRequestStream偶尔超时 + 总结各种超时死掉的可能和相应的
- HttpWebRequest的GetResponse或GetRequestStream偶尔超时 + 总结各种超时死掉的可能和相应的
- redis中各种数据类型对应的jedis操作命令
- redis中各种数据类型对应的jedis操作命令
- redis中各种数据类型对应的jedis操作命令
- redis中各种数据类型对应的jedis操作命令
- redis中各种数据类型对应的jedis操作命令
- redis中各种数据类型对应的jedis操作命令
- tomcat nginx默许的post大小限制
- shiro入门讲解
- 人工智能之卡尔曼滤波进阶
- 2016年如何用正确的姿势抢“头条”?
- Ubuntu14.04下搭建VPN服务
- redis主从同步期间发送的各种命令和各种超时
- R语言—Linux下R语言的下载与安装
- js图片预加载
- 空
- 内存溢出之黑客篇
- STC89C52RC特点及引脚介绍
- 悟
- iOS键盘高度
- SAP S/4HANA