Redis主从复制和哨兵模式

Redis数据类型和常用配置https://blog.csdn.net/projectNo/article/details/119733596
Redis发布订阅和事务https://blog.csdn.net/projectNo/article/details/119818581
Redis持久化https://blog.csdn.net/projectNo/article/details/119861861
Redis主从复制和哨兵模式https://blog.csdn.net/projectNo/article/details/119861873
Redis集群https://blog.csdn.net/projectNo/article/details/119893021

Redis主从复制

1、简介

主从复制是指一台Redis服务器的数据,复制到其他Redis服务器,前者成为主节点master,后者成为从节点slave。数据的复制是单向只能从主节点到从节点。

默认每个Redis服务器都是主节点,主节点可以有多个从节点,但从节点只能有一个主节点。

2、作用

  • 负载均衡:读写分离,主节点主要提供写操作,从节点提供度服务,提高并发能力。
  • 数据冗余:主从复制实现了数据的热备份,是持久化之外的一种数据冗余方式,
  • 容灾恢复:当主节点出现问题,可以由从节点代替服务。
  • 高可用基石:主从复制是哨兵和集群能够实施的基础。

3、建立主从

主从复制的开启是在从节点开启的,主节点不需要任何操作。

从节点开启主要有一下三种方式:

  • 配置文件开启

    在从服务器的配置文件中REPLICATION加入slaveof < masterip> < masterport>

  • 启动命令

    redis-server --slaveof < masterip> < masterport>

  • 客户端命令

    客户端执行命令slaveof < masterip> < masterport>

用info replication命令查看主从节点的信息:

  • role:master主节点;slave从节点
  • connected_slaves:从节点数量
  • slave0:(如果有从节点)从节点信息,ip、Port、state、offset和lag

4、断开主从

  • slaveof no one

5、主从复制实现原理

(1)建立连接:建立主从链接,为数据同步做好准备。

(2)数据同步:建立连接后从节点数据开始初始化,从节点向主节点发送psync命令同步,根据主节点的状态进行全量或者部分复制。

(3)命令传播:数据同步后,主节点将自己指向的命令发送给从节点,从节点接收并执行,从而保证数据一致性。

哨兵模式

1、作用

  • 集群监控:监控主节点和从节点是否正常运行。
  • 消息通知:如果哪个节点有故障,哨兵负责发送消息。
  • 故障转移:如果主节点故障,会自动转移到从节点上。
  • 配置中心:如果故障转移发生了,通知从节点新的主节点地址。

2、开启哨兵节点

  • 配置文件加入sentinel monitor mymaster 192.168.1.1 6379 2,意思是改哨兵监控192.168.1.1 6379这个主节点,后面2的含义是至少两个哨兵节点统一才能判定主节点故障进行转移。
  • redis-sentinel 哨兵配置文件
  • 启动时redis-server 哨兵配置文件 --sentinel

通过info sentinel就可以查看监控信息。

3、哨兵原理

(1)定时任务:每个哨兵维护3个定时任务:向主节点发送info命令获取最新主从结构;通过发布订阅获取其他哨兵信息;通过向其他节点发送ping命令进行心跳检测,判断是否下线。

(2)主观下线:心跳检测有节点超过一定时间没有回复则认为下线。

(3)客观下线:哨兵堆主节点主观下线后,会通过sentinel is-master-down-by-addr命令询问其他哨兵该节点状态,如果主节点主观下线的哨兵达到一定值,则对主节点进行客观下线。

(4)选举新主节点:在主节点被客观下线之后,各个哨兵点协商选举新“领导”。

(5)故障转移:通过slaveof no one让选举出来的节点成为主节点,让其他节点通过slaveof命令成为其从节点,已经下线的主节点成为新节点的从节点,即使再次上线也是从节点。

4、注意

  • 哨兵至少要2个节点来保障自己的健壮性。
  • 哨兵+主从是不保障数据零丢失的,只保障高可用性。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值