下面以 CentOS 7/8 为例,系统讲解 Redis 集群(Redis Cluster) 的部署方式,适合生产环境。
示例中使用 6 个节点(3 主 3 从),这是 Redis 官方推荐的最小集群规模。
| 主机 | IP | 端口 |
|---|---|---|
| node1 | 192.168.1.101 | 6379 |
| node2 | 192.168.1.102 | 6379 |
| node3 | 192.168.1.103 | 6379 |
| node4 | 192.168.1.104 | 6379 |
| node5 | 192.168.1.105 | 6379 |
| node6 | 192.168.1.106 | 6379 |
✅ 生产环境建议 3 主 3 从
✅ 可以在同一台机器用不同端口测试(不推荐生产)
# 防火墙
systemctl stop firewalld
systemctl disable firewalld
# SELinux
setenforce 0
sed -i 's/^SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
yum install -y epel-release
yum install -y redis
yum install -y gcc make
wget https://download.redis.io/redis-stable.tar.gz
tar -zxvf redis-stable.tar.gz
cd redis-stable
make && make install
mkdir -p /etc/redis/cluster
mkdir -p /var/lib/redis
vi /etc/redis/cluster/redis-6379.conf
bind 0.0.0.0
port 6379
daemonize yes
pidfile /var/run/redis_6379.pid
logfile /var/log/redis_6379.log
dir /var/lib/redis
dbfilename dump.rdb
appendonly yes
appendfilename "appendonly.aof"
cluster-enabled yes
cluster-config-file nodes-6379.conf
cluster-node-timeout 5000
✅ 关键参数说明:
| 参数 | 说明 |
|---|---|
| cluster-enabled | 开启集群 |
| cluster-config-file | 集群节点信息 |
| cluster-node-timeout | 节点超时时间 |
redis-server /etc/redis/cluster/redis-6379.conf
检查:
ps -ef | grep redis
⚠️ 只需在一台机器执行
redis-cli --cluster create \
192.168.1.101:6379 \
192.168.1.102:6379 \
192.168.1.103:6379 \
192.168.1.104:6379 \
192.168.1.105:6379 \
192.168.1.106:6379 \
--cluster-replicas 1
✅ --cluster-replicas 1
表示 每个主节点 1 个从节点
redis-cli -h 192.168.1.101 -p 6379 cluster nodes
redis-cli -h 192.168.1.101 -p 6379 cluster info
redis-cli -c -h 192.168.1.101 -p 6379
set foo bar
get foo
✅ -c 表示以 集群模式 连接(自动重定向)
redis-cli --cluster check 192.168.1.101:6379
redis-cli --cluster add-node 新IP:6379 现有IP:6379
再分配槽位:
redis-cli --cluster reshard 现有IP:6379
redis-cli --cluster del-node IP:6379 节点ID
✅ 使用 systemd 管理 Redis
✅ 开启 密码认证(requirepass / masterauth)
✅ 配置 监控(Prometheus + Grafana)
✅ 定期备份 RDB / AOF
✅ 避免单台机器部署多个实例(除非测试)
✅ 清理:
rm -f /var/lib/redis/*
rm -f /var/run/redis*
如果你需要:
可以直接告诉我,我给你对应方案。