深入学习Redis高可用的基石:主从复制

数据库2025-11-05 12:14:3562
深入学习Redis高可用的基石:主从复制
复制/* Replication cron function,深入石主 called 1 time per second. */  void replicationCron(void) {     static long long replication_cron_loops = 0;     /* Non blocking connection timeout? */     if (server.masterhost &&         (server.repl_state == REDIS_REPL_CONNECTING ||          slaveIsInHandshakeState()) &&          (time(NULL)-server.repl_transfer_lastio) > server.repl_timeout)     {         redisLog(REDIS_WARNING,"Timeout connecting to the MASTER...");         undoConnectWithMaster();     }     /* Bulk transfer I/O timeout? */     if (server.masterhost && server.repl_state == REDIS_REPL_TRANSFER &&         (time(NULL)-server.repl_transfer_lastio) > server.repl_timeout)     {         redisLog(REDIS_WARNING,"Timeout receiving bulk data from MASTER... If the problem persists try to set the repl-timeout parameter in redis.conf to a larger value.");         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)     {         redisLog(REDIS_WARNING,"MASTER timeout: no data nor PING received...");         freeClient(server.master);     }     //此处省略无关代码……     /* Disconnect timedout slaves. */     if (listLength(server.slaves)) {         listIter li;         listNode *ln;         listRewind(server.slaves,&li);         while((ln = listNext(&li))) {             redisClient *slave = ln->value;             if (slave->replstate != REDIS_REPL_ONLINE) continue;             if (slave->flags & REDIS_PRE_PSYNC) continue;             if ((server.unixtime - slave->repl_ack_time) > server.repl_timeout)             {                 redisLog(REDIS_WARNING, "Disconnecting timedout slave: %s",                     replicationGetSlaveName(slave));                 freeClient(slave);             }         }     }     //此处省略无关代码……  }  1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.31.32.33.34.35.36.37.38.39.40.41.42.43.44.45.46.47.48.49.50.51.52.53.
本文地址:http://www.bzve.cn/news/464e8999446.html
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

全站热门

解决电脑蓝屏遇到未知错误的方法(探索电脑蓝屏背后的未知错误并迎头解决)

几行代码,轻松带你实现Java生成二维码功能!

桃李春风一杯酒,江湖夜雨十年灯 - 老兵夜话DPDK

JavaScript优化技巧

揭秘电脑连WiFi密码错误的可能原因(解密密码错误背后的秘密和解决方法)

苹果近红外光学AR/VR眼球追踪技术获专利授权

GitHub 标星 54K + 2K!这才是程序员写逼格满满的 PPT 的正确姿势!

从Context源码实现谈React性能优化

友情链接

滇ICP备2023006006号-39