Redis主从复制流程概述

本文深入解析了Redis的主从复制机制,包括master和slave节点的角色与功能,slave主动触发的复制流程,以及slave端如何处理数据同步,确保与master数据的一致性。

Redis包含master和slave两种节点:master节点对外提供读写服务,slave节点作为master的数据备份,从主节点全量同步数据,主从复制架构下,默认Slave是只读的,如果写入则会报错,但可以通过设置slave-read-only参数为no改为可写。

主从复制是由slave主动触发,流程如下:

1.首先slave向master发起sync命令,发起后,master被动的将新进的slave节点加入到自己的主备复制集群。

2.master收到sync后,开启bgsave操作。

3.bgsave完成后,master将快照信息发送给slave.

4.发送期间,master收到的来自用户客户单的新的写命令,除了正常的响应之外,都再存入一份到backlog队列中。

5.快照信息发送完成后,master继续发送backlog队列信息。

6.backlog发送完成后,后续的写操作同时发给slave来保持实时的异步复制。


slave端处理逻辑如下:

slave发送完sync后,继续对外提供服务。

开始接收master的快照信息,同时,将slave现有数据清空,并将master快照写入自身内存。

接收backlog内容并执行,期间对外提供读请求。

继续接收后续来自master的命令副本并继续回放,以保持数据和master一致。


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/15498/viewspace-2217940/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/15498/viewspace-2217940/

### Redis 主从配置详解 #### 1. 主从架构概述 Redis 的主从架构是一种常见的高可用性和扩展性的解决方案。在这种架构下,数据可以从一个 Redis 实例(称为 Master)复制到其他实例(称为 Slave)。这种设计可以用于提高读取性能、提供冗余备份以及支持故障转移[^1]。 #### 2. 主从配置流程 以下是 Redis 主从配置的具体方法: - **主节点配置** 在主节点的 `redis.conf` 文件中,无需特别设置即可作为主节点运行。只需确保该节点正常启动并监听指定端口即可[^5]。 - **从节点配置** 修改从节点的 `redis.conf` 文件,在文件中添加如下配置项: ```conf slaveof <master-ip> <master-port> ``` 这里的 `<master-ip>` 和 `<master-port>` 是主节点的 IP 地址和端口号。保存配置后重启 Redis 服务以使更改生效[^3]。 - **动态配置** 如果不想修改配置文件,也可以通过命令行动态设置从节点: ```bash SLAVEOF <master-ip> <master-port> ``` #### 3. 测试主从同步 完成上述配置后,可以通过以下方式验证主从同步是否成功: - 向主节点写入一些键值对。 - 登录从节点查看这些键值对是否存在。 如果存在,则说明主从同步已正确建立[^4]。 #### 4. 故障排查 当遇到主从同步失败的情况时,可按照以下步骤进行排查: - 确认网络连通性:检查主从节点之间的网络连接状态。 - 查看日志文件:分析主从节点的日志文件,定位可能存在的错误信息。 - 数据一致性校验:对比主从节点的数据集,确认是否有不一致之处[^2]。 --- ### 示例代码 以下是一个简单的 Python 脚本,展示如何与 Redis 主从环境交互: ```python import redis # 连接至主节点 master = redis.StrictRedis(host='172.16.104.55', port=6379, decode_responses=True) # 设置键值对 master.set('key', 'value') # 连接至从节点 slave = redis.StrictRedis(host='172.16.104.56', port=6379, decode_responses=True) # 获取键值对 print(slave.get('key')) ``` 此脚本假设主节点位于 `172.16.104.55:6379`,而从节点位于 `172.16.104.56:6379`。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值