打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
redis主从同步期间发送的各种命令和各种超时

同步期间发送的命令:

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种超时判断:

  1. if (server.masterhost  
  2.         && (server.repl_state == REDIS_REPL_CONNECTING  
  3.                 || server.repl_state == REDIS_REPL_RECEIVE_PONG)  
  4.         && (time(NULL) - server.repl_transfer_lastio)  
  5.                 > server.repl_timeout) {  
  6.     undoConnectWithMaster();  
  7. }  
  8. /* Bulk transfer I/O timeout*/  
  9. if (server.masterhost && server.repl_state == REDIS_REPL_TRANSFER  
  10.         && (time(NULL) - server.repl_transfer_lastio)  
  11.                 > server.repl_timeout) {  
  12.     replicationAbortSyncTransfer();  
  13. }  
  14. /* Timed out master when we are an already connected slave?*/  
  15. if (server.masterhost && server.repl_state == REDIS_REPL_CONNECTED  
  16.         && (time(NULL) - server.master->lastinteraction)  
  17.                 > server.repl_timeout) {  
  18.     freeClient(server.master);  
  19. }  


2.主服务器会进行1种超时判断:

  1. if ((server.unixtime - slave->repl_ack_time)  
  2.         > server.repl_timeout) {  
  3.     char ip[REDIS_IP_STR_LEN];  
  4.     int port;  
  5.   
  6.     if (anetPeerToString(slave->fd, ip, sizeof(ip), &port) != -1) {  
  7.         //redisLog(REDIS_WARNING,  
  8.         //   "Disconnecting timedout slave: %s:%d",  
  9.         //  ip, slave->slave_listening_port);  
  10.   
  11.     }  
  12.   
  13.     // 释放  
  14.     freeClient(slave);  
  15. }  



本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Redis 5.0.8安装
redis之master.slave主从复制
Redis单例、主从模式、sentinel以及集群的配置方式及优缺点对比
【Redis21】Redis进阶:主从复制
优酷蓝鲸近千节点的Redis集群运维经验总结
深入学习Redis高可用的基石:主从复制
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服