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 实现自动故障转移
  • 考虑多从节点部署
  • 跨机房部署从节点
相关推荐
秀才恶霸4 分钟前
02_redis分布式锁原理
数据库·redis·分布式
怡雪~39 分钟前
redis的AOF恢复数据
数据库·redis·缓存
hello1114-2 小时前
Redis学习打卡-Day6-Redis 高可用(上)
数据库·redis·学习
MonKingWD2 小时前
【Redis】分布式缓存的一系列问题(持久化,主从集群,哨兵,分片集群)
redis·分布式·缓存
怡雪~3 小时前
redis的主从复制
数据库·redis·缓存
篱笆院的狗3 小时前
Redis 中的缓存击穿、缓存穿透和缓存雪崩是什么?
数据库·redis·缓存
蚊子爱喝水3 小时前
Redis7 新增数据结构深度解析:ListPack 的革新与优化
数据结构·redis
啾啾Fun3 小时前
【Redis】1-高效的数据结构P3-压缩列表与对象
数据结构·数据库·redis
王军新5 小时前
Redis 缓存使用的BigKey问题
数据库·redis·缓存
清幽竹客6 小时前
redis 基本命令-17 (KEYS、EXISTS、TYPE、TTL)
数据库·redis