Redis学习——6.集群/主从复制

1.主从复制

所谓主从复制就是在一个集群中,主服务器内的数据会复制同步到从服务器中。
Redis学习——6.集群/主从复制

作用

下面是主从复制的作用

  • 数据冗余:也就是数据备份
  • 故障恢复
  • 负载均衡
  • 高可用
    • 哨兵
    • 集群

复制的原理

  1. Slave连接到Master后会发送一个sync命令请求同步
  2. Master接收到命令后启动存盘,同时收集所有修改命令。在后台执行完修改命令后。传送完整的数据文件给slave完成同步
  3. slave将其存盘并加载到内存中

复制的类型

  • 全量复制:上述的类型就是全量复制,会在slave第一次连接上master后触发
  • 增量复制:将收到的修改命令以此传给slave

如何实现集群

  1. 配置多个配置文件,更改端口号、rdb文件名、pid文件名、日志文件名。如果是从机还需要配置对应的主机
  2. 为每个配置文件打开一个服务器进程

宕机后手动配置新的主机

SLAVEOF no one:在需要转换为从机的机器上输入该条命令即可

2.哨兵模式

上面提到的集群配置还是一种手动配置模式。并不使用于真实的集群场景。我们需要服务器在宕机后自动完成主从转换。redis为我们提供了哨兵模式(2.8后)

哨兵是一个独立的进程,通过发送命令,等待Redis服务器响应,从而监控多个Redis实例

如果主机故障将根据票数,将某台从机从slave切换到master。然后通过发布订阅模式通知其他从机修改配置完成主从切换。

多哨兵模式

一个哨兵固然可以监控多个redis服务器。但是意味着如果这个哨兵发送故障或者判断错误。就会引起其他的问题。这时,为了保证哨兵模式的可靠性我们需要多个哨兵进行监控。
Redis学习——6.集群/主从复制
主机宕机时,需要多个哨兵的检测结果相同。我们认为仅靠一个哨兵的检测结果过于主观。需要多个哨兵实现客观统一
failover:故障切换