Please enable JavaScript.
Coggle requires JavaScript to display documents.
redis集群 - Coggle Diagram
redis集群
主从模式
-
流程
-
-
- 主库收到psync命令后,会用FULLRESYNC响应命令带上两个参数:主库runID和主库目前的复制进度offset,返回给从库
- 主库将所有数据同步给从库。从库收到数据后,在本地完成数据加载。
- 主库执行BGSAVE 生成RDB文件,发送给从
- 从库清库加载RDB
- 主库将从复制期间操作写入replication buffer
- 从复制完成,主库发送replication buffer内容给从
问题
-
主从之间的坑
protected-mode 未设置no,且未绑定 其他哨兵的ip
该配置项表示是否只有本机能与哨兵通信,要如下设置
-
主从不一致问题
-
INFO replication
可以查看主从缓冲区的offset即 master_repl_offset,slave_repl_offset
过期数据
expire 时间到从后会重算,使用expireAt缓解
-
-
-
哨兵模式
哨兵功能
-
选主
- 根据down-after-milliseconds 选取网络最优
- 分三轮
- slave-priority 优先级大的胜出
- slave_repl_offset最接近master_repl_offset的节点 胜出即主从同步成都最接近
- ID小的胜出
通知
-
哨兵连接主库后,会订阅主库频道(sentinel:hello),
接受其他哨兵信息,广播自己信息
-
哨兵间选主
- 哨兵发现主库下线,会发送is-master-down-by-addr 给其他哨兵,
其他哨兵根据自己的监控情况返回Y/N
-
- 发送 is-master-down-by-addr 的哨兵发起投票要求做leader
其他哨兵也可以发起投票
- 超过一般票的哨兵且票数大于等于哨兵配置文件中的quorum值。即可做leader
-
-
-
-