Redis主从复制配置全攻略

Redis 主从复制笔记

一、主从同步原理

  1. Slave 发起同步请求
    • Slave 节点向 Master 节点发送同步请求。
  2. 认证与开始同步
    • Slave 通过 Master 的认证后,开始同步流程。
  3. Master 生成 RDB 快照
    • Master 执行 bgsave,生成内存快照(RDB)并发送给 Slave。
    • 此过程为异步操作,Master 仍可处理写请求。
  4. Slave 清空数据并加载 RDB
    • Slave 收到 RDB 后,先清空自身数据,再加载 RDB 恢复数据。
  5. 增量数据同步
    • 在 RDB 生成和传输期间,Master 将新写入的数据缓存起来。
    • 通过 replicationFeedSlave 函数,将这些增量数据逐条发送给 Slave。

二、配置步骤

1. 主节点配置(redis-node1)

复制代码
vim /etc/redis/redis.conf

修改以下配置:

复制代码
bind * -::*
protected-mode no

重启服务:

复制代码
systemctl restart redis_6379.service

2. 从节点配置(redis-node2、redis-node3)

复制代码
[root@redis-node2 和node3 ~]vim /etc/redis/redis.conf

添加或修改:

复制代码
bind * -::*
protected-mode no
replicaof 172.25.254.10 6379   # 指定主节点 IP 和端口

重启服务:

复制代码
[root@redis-node2 和node3 ~]systemctl restart redis_6379.service

三、状态查看与测试

1. 查看主节点状态

bash

复制代码
[root@redis-node1 ~]# redis-cli
127.0.0.1:6379> info replication

示例输出:

复制代码
role:master
connected_slaves:2
slave0:ip=172.25.254.20,port=6379,state=online
slave1:ip=172.25.254.30,port=6379,state=online

2. 查看从节点状态

复制代码
redis-cli
127.0.0.1:6379> info replication

示例输出:

复制代码
role:slave
master_host:172.25.254.10
master_port:6379
master_link_status:up

四、数据同步测试

主节点写入数据

复制代码
redis-cli
127.0.0.1:6379> set name swp
OK
127.0.0.1:6379> get name
"swp"

从节点读取数据

复制代码
redis-cli
127.0.0.1:6379> get name
"swp"

从节点写入测试(应失败)

复制代码
127.0.0.1:6379> set test baibai
(error) READONLY You can't write against a read only replica.

说明:从节点默认只读,无法执行写操作。


五、注意事项

  • 主从复制是异步的,主节点不会等待从节点确认。
  • 从节点默认只读,可通过配置 replica-read-only no 关闭(不推荐)。
  • 若主节点无持久化配置,建议结合 requirepass 设置密码认证。
    认只读,无法执行写操作。

五、注意事项

  • 主从复制是异步的,主节点不会等待从节点确认。
  • 从节点默认只读,可通过配置 replica-read-only no 关闭(不推荐)。
  • 若主节点无持久化配置,建议结合 requirepass 设置密码认证。
  • 支持一主多从、链式复制(从节点也可作为其他从节点的主节点)。
相关推荐
复园电子1 小时前
企业级PDF批量盖章方案选型指南
数据库·pdf
喜欢就别4 小时前
【Agentic RL / 强化学习 / OPD】OpenClaw-RL 源码阅读笔记 --- (2)--- On-Policy Distillation
人工智能·笔记
Lhappy嘻嘻6 小时前
Java IO|File 文件操作 + 字节流 / 字符流完整笔记 + 递归删除文件实战
java·笔记·php
ffqws_6 小时前
Redis 分布式锁:基于 Redisson 的实现与面试高频问答
redis·分布式·面试
AI-好学者8 小时前
阶段一-图数据库基础与PropertyGraph模型
数据库·rag·knowledge graph·graphrag
GLDbalala8 小时前
GPU PRO 5 - 4.6 Adaptive Scalable Texture Compression 笔记
笔记
xian_wwq8 小时前
【学习笔记】模型权重管理:Safetensors与私有化Hub(23/35)
笔记·学习
其实防守也摸鱼9 小时前
运维--学习阶段问题解答(1)(自测)
linux·运维·服务器·数据库·学习·自动化·命令模式
ctrl_v助手9 小时前
Halcon学习笔记2
人工智能·笔记·学习
懒鸟一枚9 小时前
深入理解 Linux 内存、Swap 交换分区与分页机制的关系
java·linux·数据库