摘要:
事件处理器: Redis采用Reactor模式作为自己的网络事件处理器,可以看作是单线程单Reactor模型。 一、主要结构体: 1、事件: /* File event structure */ typedef struct aeFileEvent { /* 事件类型:可读or可写 */ int 阅读全文
posted @ 2022-02-06 17:15
macguz
阅读(179)
评论(0)
推荐(0)
摘要:
故障转移状态机: 一、状态机函数sentinelFailoverStateMachine: 终于进入故障转移,先看一下状态机函数: void sentinelFailoverStateMachine(sentinelRedisInstance *ri) { redisAssert(ri->fla 阅读全文
posted @ 2022-02-06 15:28
macguz
阅读(97)
评论(0)
推荐(0)
摘要:
1、检测主观下线状态: void sentinelCheckSubjectivelyDown(sentinelRedisInstance *ri) { mstime_t elapsed = mstime() - ri->last_avail_time; /* Check if we are in n 阅读全文
posted @ 2022-02-06 15:25
macguz
阅读(160)
评论(0)
推荐(0)
摘要:
Acting half: 一、进入故障转移状态之前: void sentinelHandleRedisInstance(sentinelRedisInstance *ri) { // ... // ... /* ACTING HALF */ /* We don't proceed with the 阅读全文
posted @ 2022-02-06 15:25
macguz
阅读(59)
评论(0)
推荐(0)
摘要:
Monitor half: Sentinel通过两种方式获取信息: INFO命令(通过命令连接)向其他主服务器或从服务器获取信息; 订阅hello频道,获取其他Sentinels发布的信息; 一、建立连接: Sentinel在连接主服务器或者从服务器时,会同时创建命令连接和订阅连接,但是在连 阅读全文
posted @ 2022-02-06 15:24
macguz
阅读(74)
评论(0)
推荐(0)
摘要:
一、概述: 调用链: serverCron → sentinelTimer → sentinelHandleDictOfRedisInstances → sentinelHandleRedisInstance 重要函数 这里只是给出表格,下面几节会具体分析 名称 功能 sentinelTimer 由 阅读全文
posted @ 2022-02-06 15:23
macguz
阅读(65)
评论(0)
推荐(0)

浙公网安备 33010602011771号