主从复制 哨兵模式一些知识点

主从复制

复制过程

  1. 从节点连接上主节点 并且保存主节点的信息
  2. 与主节点建立连接
  3. 从节发送ping信号 主节点返回pong 双方通信ok
  4. 主节点会将所有数据发送给从节点
  5. 接下来再持续将主节点的写命令推送给从节点 保持主从数据的一致性

同步详细过程

  1. 每个redis节点启动的时候都会生成一个唯一的uuid。
  2. 主节点和从节点都各自维护自己的主从复制偏移量,当主节点有写入命令的时候 会修改偏移量长度,然后发给从节点,从节点执行命令之后也修改自己的偏移量长度,然后把自己的偏移量长度发送给主节点,这样主节点同时有自己的偏移量以及从节点的偏移量,通过对比,就可以知道主从数据是否一致的问题。
  3. 主节点同时也维护一个固定长度的队列 大概是1m,主节点发送数据给从节点的过程中,主节点同时还会有写操作,这个时候数据存储在复制缓冲区里面,从节点同步主节点数据完成之后,主节点会将缓冲区中的数据继续发送给从节点,进行部分复制,主节点响应命令的时候不但会把命令发送给从节点,还会写入复制缓冲区,这样防止复制命令丢失可以进行补救

缺点

  1. 主节点挂了,从节点要晋级主节点,还要修改其他应用方的主节点地址,还要命令所有从节点去复制新的主节点,整个过程需要人工干预。
  2. 部分复制步成功的时候会进行全量同步,如果数据量很大 进行全量同步,会导致系统卡顿

哨兵模式

分为哨兵和redis节点两块
最少配置是一主一从
  1. 每个哨兵节点都会定期每秒一次,向他所知的主从服务器以及其他哨兵节点发送一个ping命令
  2. 如果某一台没有响应或者说超时了,那么这个时候在这个哨兵节点这里会将这一台标记为主观下线,意思就是这个节点在我这里判断它挂了,
  3. 如果有一个主服务器被标记为主观下线,那么正在监视这台服务器的所有哨兵节点,要以每秒一次的频率确认主服务器确实进入了主观下线状态
  4. 如果主服务器被标记为主观下线,并且有够多的哨兵节点(配置文件)在指定的时间访问内统一了这一判断,那么这个主服务器就被标记为客观下线,意思就是他真的挂了
  5. 哨兵节点会协商投票自动选出新的主节点,并且将剩下的从节点指向新的主节点进行数据复制
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容