下面以 CentOS 7/8 为例,说明如何配置 Redis 主从(Master-Slave)复制。示例基于 Redis 6.x / 7.x,适用于单机多实例或不同服务器。
# CentOS 7
yum install -y epel-release
yum install -y redis
# CentOS 8
dnf install -y redis
查看版本:
redis-server --version
| 角色 | IP | 端口 |
|---|---|---|
| Master | 192.168.1.10 | 6379 |
| Slave | 192.168.1.11 | 6379 |
vim /etc/redis.conf
关键配置:
bind 0.0.0.0
protected-mode no
port 6379
daemonize yes
pidfile /var/run/redis/redis.pid
logfile /var/log/redis/redis.log
dir /var/lib/redis
(可选)设置密码:
requirepass 123456
systemctl enable redis
systemctl start redis
vim /etc/redis.conf
关键配置:
bind 0.0.0.0
protected-mode no
port 6379
daemonize yes
pidfile /var/run/redis/redis.pid
logfile /var/log/redis/redis.log
dir /var/lib/redis
replicaof 192.168.1.10 6379
如果主节点有密码:
masterauth 123456
Redis 5 之前使用
slaveof,新版本推荐replicaof
systemctl enable redis
systemctl start redis
redis-cli
info replication
应看到:
role:master
connected_slaves:1
redis-cli
info replication
应看到:
role:slave
master_host:192.168.1.10
master_link_status:up
redis-cli
set test "hello redis"
redis-cli
get test
✅ 能读到说明主从复制成功
firewall-cmd --add-port=6379/tcp --permanent
firewall-cmd --reload
redis-cli
set a 1
# (error) READONLY You can't write against a read only replica
✅ 主从 + Sentinel(高可用)
✅ 主节点不做持久化,从节点开启 AOF/RDB
✅ 使用强密码
✅ 限制 bind 为内网 IP
只需在多个从节点配置:
replicaof 192.168.1.10 6379
如果你需要 Sentinel 高可用配置 或 Docker / 多实例配置,可以继续问我。