Redis学习——6.集群/主从复制
1.主从复制
所谓主从复制就是在一个集群中,主服务器内的数据会复制同步到从服务器中。
作用
下面是主从复制的作用
- 数据冗余:也就是数据备份
- 故障恢复
- 负载均衡
- 高可用
- 哨兵
- 集群
复制的原理
- Slave连接到Master后会发送一个sync命令请求同步
- Master接收到命令后启动存盘,同时收集所有修改命令。在后台执行完修改命令后。传送完整的数据文件给slave完成同步
- slave将其存盘并加载到内存中
复制的类型
- 全量复制:上述的类型就是全量复制,会在slave第一次连接上master后触发
- 增量复制:将收到的修改命令以此传给slave
如何实现集群
- 配置多个配置文件,更改端口号、rdb文件名、pid文件名、日志文件名。如果是从机还需要配置对应的主机
- 为每个配置文件打开一个服务器进程
宕机后手动配置新的主机
SLAVEOF no one:在需要转换为从机的机器上输入该条命令即可
2.哨兵模式
上面提到的集群配置还是一种手动配置模式。并不使用于真实的集群场景。我们需要服务器在宕机后自动完成主从转换。redis为我们提供了哨兵模式(2.8后)
哨兵是一个独立的进程,通过发送命令,等待Redis服务器响应,从而监控多个Redis实例
如果主机故障将根据票数,将某台从机从slave切换到master。然后通过发布订阅模式通知其他从机修改配置完成主从切换。
多哨兵模式
一个哨兵固然可以监控多个redis服务器。但是意味着如果这个哨兵发送故障或者判断错误。就会引起其他的问题。这时,为了保证哨兵模式的可靠性我们需要多个哨兵进行监控。
主机宕机时,需要多个哨兵的检测结果相同。我们认为仅靠一个哨兵的检测结果过于主观。需要多个哨兵实现客观统一
failover:故障切换