面试题答案
一键面试Redis主从复制基本原理
- 同步阶段
- 从节点连接主节点,发送
SYNC
命令。 - 主节点接收到
SYNC
命令后,开始执行BGSAVE
命令生成RDB文件,并使用缓冲区记录此后执行的写命令。 - 主节点将RDB文件发送给从节点,从节点接收到后,先清空本地数据,然后加载RDB文件。
- 主节点将缓冲区的写命令发送给从节点,从节点执行这些命令,从而达到数据同步。
- 从节点连接主节点,发送
- 命令传播阶段
- 同步完成后,主节点执行的写命令会通过异步方式源源不断地发送给从节点,从节点接收并执行这些命令,保持与主节点的数据一致性。
在Linux环境下配置一主一从Redis复制架构
- 安装Redis
- 可以通过包管理器(如
yum
或apt - get
)安装,以yum
为例:
sudo yum install redis
- 可以通过包管理器(如
- 配置主节点
- 编辑主节点的Redis配置文件,通常位于
/etc/redis.conf
。 - 确保以下配置项:
bind 0.0.0.0 # 允许其他节点连接,生产环境可按需修改 protected - mode no # 关闭保护模式
- 重启Redis服务使配置生效:
sudo systemctl restart redis
- 编辑主节点的Redis配置文件,通常位于
- 配置从节点
- 编辑从节点的Redis配置文件
/etc/redis.conf
。 - 添加或修改以下配置:
bind 0.0.0.0 protected - mode no slaveof <主节点IP> <主节点端口> # 例如 slaveof 192.168.1.100 6379
- 重启从节点的Redis服务:
sudo systemctl restart redis
- 编辑从节点的Redis配置文件
- 验证配置
- 在主节点上执行
redis - cli
进入Redis客户端,设置一些键值对:
redis - cli set key1 value1
- 在从节点上同样进入Redis客户端,尝试获取刚才设置的键值对:
redis - cli get key1
- 如果能获取到
value1
,说明主从复制配置成功。
- 在主节点上执行