Redis笔记(七):主从复制和哨兵模式

Bota5ky / 2023-05-21 / 原文

主从复制的作用:

  • 数据冗余
  • 故障恢复
  • 负载均衡
  • 高可用

原因:

  • 单点故障
  • 单台服务器内存有限,一般来说,单台最大不应该超过20G

配置

master服务器不用特殊配置

info replication # 查看集群主从信息

需要配置的项:

port 6379
daemonize yes # 打开后台运行
pidfile /var/run/reds_6379.pid
logfile "6379.log"
dbfilename dump6379.rdb

从机配置

从机ReadOnly无法写入,链式主从复制,中间的节点依旧属于Slave。

SLAVEOF host port # 使用命令进行配置
SLAVEOF no one # 从slave更新为master节点
replicaof <masterip> <masterport> # 使用配置项进行永久配置

复制原理

slave启动成功连接到 master 后会发送一个sync同步命令

master 接到命令,启动后台的存盘进程,同时收集所有接收到的用于修改数据集命令,在后台进程执行完毕之后,master将传送整个数据文件到slave,并完成一次完全同步。

全量复制:而slave服务在接收到数据库文件数据后,将其存盘并加载到内存中。

增量复制::master 继续将新的所有收集到的修改命令依次传给slave,完成同步但是只要是重新连接master,一次完全同步(全量复制)将被自动执行。

哨兵模式

哨兵模式是一种特殊的模式,首先Redis提供了哨兵的命令,哨兵是一个独立的进程,作为进程,它会独立运行。其原理是哨兵通过发送命令等待Redis服务器响应从而监控运行的多个Redis实例。

多哨兵模式:

假设主服务器宕机,哨兵1先检测到这个结巢,系统并不会马上进行failover过程,仅仅是哨兵1主观的认为主服务器不可用,这个现象成为主观下线。当后面的哨兵也检测到主服务器不可用,并且数量达到一定值时,那么哨兵之间就会进行一次投票,投票的结果由一个哨兵发起,进行failover[故障转移]操作。切换成功后,就会通过发布订阅模式,让各个哨兵把自己监控的从服务器实现切换主机,这个过程称为客观下线