【Redis 系列】redis 学习十,Redis 集群搭建和主从复制

是这样的,想请教下,【Redis 系列】redis 学习十,Redis 集群搭建和主从复制
最新回答
寡走渡人

2026-10-31 18:29:35

Redis 集群搭建和主从复制指南

主从复制理论概述

主从复制是将一台Redis服务器数据复制到其他Redis服务器的机制:

  • 主节点(Master):负责写操作,默认每台Redis服务器都是主节点
  • 从节点(Slave):负责读操作,一个主节点可配置多个从节点,但一个从节点只能有一个主节点

核心作用:

  • 数据冗余:实现热备份,作为持久化外的数据冗余方式
  • 故障恢复:主节点异常时,从节点可快速接管服务
  • 负载均衡:通过读写分离分担服务器压力,尤其适合读多写少场景
  • 高可用基础:是哨兵模式和集群实施的基础,生产环境至少采用"一主二从"架构

环境配置步骤

1. 配置文件准备

在一台服务器上模拟伪集群(3个Redis实例):

# 复制基础配置文件cp redis.conf 6379.confcp redis.conf 6380.confcp redis.conf 6381.conf2. 修改配置参数

对每个配置文件修改以下4项:

# 修改端口号port 6379 # 6380.conf改为6380,6381.conf改为6381# 修改PID文件路径pidfile /var/run/redis_6379.pid # 对应端口修改# 修改日志文件logfile "6379.log" # 对应端口修改# 修改RDB持久化文件dbfilename dump6379.rdb # 对应端口修改3. 启动Redis实例redis-server /usr/local/redis/redis-6.2.5/6379.confredis-server /usr/local/redis/redis-6.2.5/6380.confredis-server /usr/local/redis/redis-6.2.5/6381.conf4. 验证启动状态ps aux | grep redis# 应显示3个Redis进程分别监听6379/6380/6381端口

主从配置实现

1. 临时配置(命令行方式)

设置6379为主节点,6380和6381为从节点:

# 配置6380为6379的从节点redis-cli -p 6380 SLAVEOF 127.0.0.1 6379# 配置6381为6379的从节点redis-cli -p 6381 SLAVEOF 127.0.0.1 63792. 持久化配置(修改配置文件)

在6380.conf和6381.conf中添加:

replicaof 127.0.0.1 6379 # Redis 5.0+版本使用replicaof替代slaveof3. 验证主从关系# 查看主节点信息redis-cli -p 6379 INFO replication# 应显示:connected_slaves:2# 查看从节点信息redis-cli -p 6380 INFO replication# 应显示:role:slave, master_host:127.0.0.1, master_port:6379

功能测试验证

1. 读写分离测试# 主节点操作(可读写)redis-cli -p 6379127.0.0.1:6379> set k1 v1OK127.0.0.1:6379> get k1"v1"# 从节点操作(只读)redis-cli -p 6380127.0.0.1:6380> get k1"v1"127.0.0.1:6380> set k2 v2(error) READONLY You can't write against a read only replica.2. 故障恢复测试# 关闭主节点redis-cli -p 6379 SHUTDOWN# 从节点仍可读取数据redis-cli -p 6381127.0.0.1:6381> keys *1) "k1"# 重启主节点后自动恢复主从关系redis-server /usr/local/redis/redis-6.2.5/6379.conf

复制原理详解

1. 全量复制流程
  1. 从节点发送SYNC命令
  2. 主节点启动后台存盘进程(BGSAVE)
  3. 主节点收集所有修改数据库的命令
  4. 主节点将完整数据文件传输给从节点
  5. 从节点加载数据到内存
2. 增量复制流程
  1. 主节点将新收集的修改命令依次传递给从节点
  2. 从节点执行这些命令保持数据同步
  3. 断线重连时触发全量复制

生产环境建议

  1. 架构选择:至少采用"一主二从"架构,满足高可用和负载均衡需求
  2. 容量规划:单台Redis内存建议不超过20GB
  3. 持久化配置:主从节点均需配置RDB/AOF持久化
  4. 监控告警:部署监控系统实时跟踪主从同步状态
  5. 故障预案:制定主节点故障时的从节点晋升方案

通过以上步骤可完成Redis主从复制集群的搭建,该方案能有效提升系统可用性和性能,是Redis高可用架构的基础组件。实际生产环境中建议结合哨兵模式或集群模式实现更高级别的容灾能力。