Redis 主从复制部署

Redis 主从复制部署指南

Redis 主从复制是一种数据冗余机制,通过将主节点(Master)的数据复制到一个或多个从节点(Slave)来实现数据备份和读写分离。

一、Redis 主从复制原理

工作原理‌:

  • 从节点启动后连接到主节点,发送 SYNC 命令
  • 主节点执行 BGSAVE 生成 RDB 文件,同时缓存新写入命令
  • 主节点将 RDB 文件发送给从节点
  • 从节点清空数据后加载 RDB 文件
  • 主节点将缓存中的写命令发送给从节点执行

优点‌:

  • 数据冗余,提高可用性
  • 读写分离,提升性能
  • 故障恢复快速

二、单机部署主从复制

1. 准备环境

复制代码
# 安装 Redis
sudo apt-get install redis-server

2. 配置主节点 (Master)

编辑主节点配置文件 /etc/redis/redis.conf:

复制代码
bind 0.0.0.0
port 6379
daemonize yes
pidfile /var/run/redis_6379.pid
logfile "/var/log/redis_6379.log"
dbfilename dump_6379.rdb

启动主节点:

复制代码
redis-server /etc/redis/redis.conf

3. 配置从节点 (Slave)

复制配置文件:

复制代码
cp /etc/redis/redis.conf /etc/redis/redis_6380.conf

编辑从节点配置文件 /etc/redis/redis_6380.conf:

复制代码
bind 0.0.0.0
port 6380
daemonize yes
pidfile /var/run/redis_6380.pid
logfile "/var/log/redis_6380.log"
dbfilename dump_6380.rdb
# 关键配置:指定主节点
replicaof 127.0.0.1 6379
# 如果主节点有密码
# masterauth yourpassword

启动从节点:

复制代码
redis-server /etc/redis/redis_6380.conf

4. 验证主从复制

在主节点执行:

复制代码
redis-cli -p 6379
127.0.0.1:6379> set testkey "hello"
OK
127.0.0.1:6379> info replication

在从节点执行:

复制代码
redis-cli -p 6380
127.0.0.1:6380> get testkey
"hello"
127.0.0.1:6380> info replication

三、多服务器部署主从复制

1. 主节点配置 (192.168.1.100)

复制代码
bind 192.168.1.100
port 6379
protected-mode no
daemonize yes
requirepass masterpassword

2. 从节点配置 (192.168.1.101)

复制代码
bind 192.168.1.101
port 6379
protected-mode no
daemonize yes
replicaof 192.168.1.100 6379
masterauth masterpassword

3. 启动服务

分别在两台服务器上启动 Redis:

复制代码
redis-server /path/to/redis.conf

四、高级配置选项

只读从节点‌:

复制代码
replica-read-only yes

复制积压缓冲区‌:

复制代码
repl-backlog-size 1mb

无磁盘复制‌:

复制代码
repl-diskless-sync yes
repl-diskless-sync-delay 5

心跳检测‌:

复制代码
repl-ping-replica-period 10
repl-timeout 60

五、主从切换 (手动)

提升从节点为主节点:

复制代码
redis-cli -h 192.168.1.101 -p 6379
127.0.0.1:6379> REPLICAOF NO ONE

将其他节点指向新主节点:

复制代码
redis-cli -h 192.168.1.102 -p 6379
127.0.0.1:6379> REPLICAOF 192.168.1.101 6379

六、监控与维护

查看复制状态:

复制代码
redis-cli info replication

监控复制延迟:

复制代码
redis-cli --latency

常见问题排查:

  • 检查网络连接
  • 检查密码是否正确
  • 检查防火墙设置
  • 查看日志文件 /var/log/redis_*.log

七、生产环境建议

安全建议‌:

  • 使用强密码
  • 启用 TLS 加密传输
  • 限制绑定 IP

性能建议‌:

  • 主节点关闭持久化时,从节点开启持久化
  • 适当调整复制积压缓冲区大小
  • 监控复制延迟

高可用建议‌:

  • 配合 Redis Sentinel 实现自动故障转移
  • 考虑多从节点部署
  • 跨机房部署从节点
相关推荐
疯华整猫3 小时前
把二十七个 init 从首帧前面搬走:用 Trae 把启动优化钉进 CI
android·性能优化·ai编程
虹科网络安全3 小时前
Search on Flex:用分层存储承载更大规模的 Redis 搜索索引
经验分享·redis·艾体宝·艾体宝it
青瓦梦滋4 小时前
Redis主从复制
服务器·数据库·redis·缓存·bootstrap
Joy T5 小时前
Redis Lua 原子限流:Lua 脚本、竞态条件与并发控制
数据库·redis·lua·限流·竞态条件·redis scripting
IT规划师6 小时前
Redis 数据类型全解 - Stream 深度:Pending 回收、重试死信与消息队列选型(十一)
redis·.net
虹科网络安全16 小时前
RDI 多数据源管道:把分散的数据汇入统一 Redis 数据层
经验分享·redis·艾体宝·艾体宝it·艾体宝redis
我不会起名字32218 小时前
Redis 从 0 到 1(三十七·收官):36 篇浓缩成 1 张知识地图 + 50 项生产 Checklist
redis·go·知识体系·checklist·收官
2601_9679873719 小时前
安装 Redis 或 Redis Stack
linux·windows·redis·macos·安装
小番茄程序猿21 小时前
Redis 编码压测 59 轮:HSET 快 23 倍是假象,SMEMBERS 慢 30 倍是真的
redis·后端