Redis实现主从复制以及哨兵集群配置

本文详细介绍了Redis的主从复制配置步骤,包括全量复制、增量复制和无磁盘复制,以及主从同步过程。此外,还讨论了哨兵集群的原理和配置,哨兵系统用于监控、通知和自动故障转移,确保高可用性。哨兵通过定期发送命令监控主节点,并在多数哨兵达成共识时执行故障转移。故障转移会选择合适的从节点晋升为主节点,并更新客户端连接信息。
摘要由CSDN通过智能技术生成

一.reids集群(主从复制)

1.配置步骤:

1). 修改从节点(slave)的redis.conf文件的slaveof属性(redis5.0以上版本: replicaof);
slaveof 主节点ip 主节点端口号 / replicaof 主节点ip 主节点端口号
2). 如果主节点有密码,则需要更改masterauth属性;
masterauth 主节点密码
3). 修改主节点(master)redis.conf文件的bind属性;bind属性表示:允许那个ip访问此节点;
bind 从节点ip(多个用空格隔开)/0.0.0.0(任意ip都可以访问)
4). 在启动rdis client连接redis server后,可以使用info replication命令,查看当前redis client连接的redis server的节点信息.

2.数据同步

1). 全量复制: 主节点生成快照,保存到磁盘,之后发送给从节点;新增节点时或初始化,采用全量复制;
2). 增量复制: 主节点发送相同命令给从节点,从节点执行;例: 主节点执行set A 123 命令,主节点会把这个命令发送给从节点,从节点接收后执行此命令;
3). 无磁盘复制: 主节点在内存中生成快照,不保存到磁盘,之后发送给从节点; 通过redis.conf文件总的repl-diskless-sync属性来配置; repl-diskless-sync : yes
全量复制示意图: 在这里插入图片描述
1). slave节点发送psync命令给master节点,命令的第一个参数:runId,第二个参数:偏移量,由于第一次复制,slave节点不知道master的runId,也不知道自己的偏移量,这时会传 ? 和 -1,通知master节点是第一次同步;
2). master接收到psync ? -1 时,就知道slave节点要全量复制,就会将自己的runId和offset告知slave节点;
3). slave节点将masterInfo保存;
4). master节点执行bgsave操作,生成一个RDB文件;
5). 将RDB发送给slave节点;
6). 将复制缓冲区记录的操作数据发送给slave节点;(主节点执行bgsave之后的数据,放在数据缓冲区中)
7). salve节点清空自己的所有老数据;
8). slave节点加载RDB文件和复制缓冲区的数据, 完成同步;

3.其他
  • min-slaves-to-write(/min-replicas-to-write)属性: redis.conf文件中, 通过min-slaves-to-write(/min-replicas-to-write)属性, 来保证master节点在同步 个从节点之后,才可以接收下一次请求.例: min-slaves-to-write: 3;
  • min-slaves-max-lag(/min-replicas-max-lag)属性: 允许从节点最大丢失时间.超过这个时间就认为从节点断开;例: min-slaves-max-lag: 10 (单位s)
  • 思考: 如何保证从节点断开后,下次启动从节点时,同步master节点数据,是从slave节点上次断开处, 同步数据? —从节点中有个叫backlog日志文件, 其中有个offset属性, 改属性记录的是从主节点同步数据的断点位置,这样就可以保证数据一致.
  • 从节点监听主节点同步数据命令: -->> replconf listening-port 6379 -->> sync;
  • 主节点会不断发送 PING 命令,不断监测从节点,类似心跳包;

二.哨兵集群

1.概述:

redis

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值