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 实现自动故障转移
  • 考虑多从节点部署
  • 跨机房部署从节点
相关推荐
ayaya_mana2 小时前
Nginx性能优化与安全配置:打造高性能Web服务器
运维·nginx·安全·性能优化
陈天cjq4 小时前
Redis 实用型限流与延时队列:从 Lua 固定/滑动窗口到 Streams 消费组(含脚本与压测)
redis·junit·lua
Warren984 小时前
Lua 脚本在 Redis 中的应用
java·前端·网络·vue.js·redis·junit·lua
xiao-xiang4 小时前
redis-保姆级配置详解
数据库·redis
xiao-xiang10 小时前
redis-sentinel基础概念及部署
数据库·redis·sentinel
云间月131410 小时前
飞算JavaAI:从智能调度到出行服务的全链路技术升级
java·redis·飞算javaai炫技赛
柏油10 小时前
Spring @Cacheable 解读
redis·后端·spring
张永清-老清13 小时前
《JMeter核心技术、性能测试与性能分析》 教学大纲及标准
jmeter·性能优化
石小石Orz15 小时前
性能提升60%:前端性能优化终极指南
前端·性能优化
Runing_WoNiu17 小时前
Redis核心架构
数据库·redis·架构