【Redis集群搭建】Redis Cluster实战部署全攻略(含配置文件与命令详解)

在生产环境中,Redis 单节点存在单点故障风险。为了实现高可用与数据自动分片,我们推荐使用 Redis Cluster 集群方案。本文将带你从零开始,手把手完成一套 三台服务器、主从互备 的高可用 Redis 集群搭建。


🧩 一、集群规划概览

服务器IP主节点端口从节点端口从节点复制来源
10.10.10.3570007003复制 36 服务器主节点
10.10.10.3670017004复制 37 服务器主节点
10.10.10.3770027005复制 35 服务器主节点

✅ 规划说明:
三台服务器互为主从,一台宕机仍有两台主节点可维持集群运行。
这是 Redis Cluster 正常运行的基本条件(主节点必须多数在线)。


⚙️ 二、基础安装

在三台服务器上执行相同的安装操作(建议 Redis ≥ 5.0):

sudo yum update -y sudo yum install -y redis

验证是否安装成功:

redis-server -v

📁 三、节点目录与配置文件

1️⃣ 创建目录结构

Redis 集群中每个节点(端口)都需独立目录来存放配置文件与数据。

/opt/redis-cluster 为根目录:

sudo mkdir -p /opt/redis-cluster
cd /opt/redis-cluster
sudo mkdir 7000 7001 7002 7003 7004 7005

💡 注意:
每台服务器仅需创建本机负责的两个端口。例如:

  • 10.10.10.35 → 7000、7003

  • 10.10.10.36 → 7001、7004

  • 10.10.10.37 → 7002、7005


2️⃣ Redis 配置模板

以 7000 节点为例(文件路径:/opt/redis-cluster/7000/redis.conf):

# 网络绑定
bind 0.0.0.0
port 7000
protected-mode no

# 进程管理
daemonize yes
pidfile /var/run/redis_7000.pid

# 日志配置
logfile "/var/log/redis/redis-7000.log"

# 数据持久化
dir /opt/redis-cluster/7000
appendonly yes
appendfilename "appendonly-7000.aof"

# 集群配置
cluster-enabled yes
cluster-config-file nodes-7000.conf
cluster-node-timeout 15000
cluster-require-full-coverage no

# 内存管理
maxmemory 2gb
maxmemory-policy allkeys-lru

# 慢查询日志
slowlog-log-slower-than 10000
slowlog-max-len 128

# 连接限制
maxclients 10000
timeout 0
tcp-keepalive 300

# 安全配置(生产环境请务必设置)
# requirepass YourSecurePassword123!
# masterauth YourSecurePassword123!

⚠️ 配置说明:

  • 将其中的 7000 替换为当前目录对应端口号。

  • cluster-config-file 文件由 Redis 自动生成,不要手动修改。

  • 生产环境必须配置 requirepassmasterauth 密码,并设防火墙策略。


🚀 四、启动 Redis 节点

10.10.10.35 为例,启动两个节点:

cd /usr/bin
./redis-server /opt/redis-cluster/7000/redis.conf
./redis-server /opt/redis-cluster/7003/redis.conf

检查进程是否启动:

ps -ef | grep redis-server | grep -v grep

🔒 五、防火墙配置(重要)

在每台服务器上开放对应端口:

# Redis 服务端口
sudo firewall-cmd --permanent --add-port=7000/tcp
sudo firewall-cmd --permanent --add-port=7003/tcp

# 集群总线端口 = 服务端口 + 10000
sudo firewall-cmd --permanent --add-port=17000/tcp
sudo firewall-cmd --permanent --add-port=17003/tcp

# 重载规则
sudo firewall-cmd --reload

# 验证
sudo firewall-cmd --list-ports


🧠 六、创建集群

只需在任意一台服务器上执行以下命令:

redis-cli --cluster create \
  10.10.10.35:7000 \
  10.10.10.36:7001 \
  10.10.10.37:7002 \
  10.10.10.35:7003 \
  10.10.10.36:7004 \
  10.10.10.37:7005 \
  --cluster-replicas 1

参数解释:

  • --cluster-replicas 1:每个主节点分配一个从节点

  • 命令会自动生成主从分配方案,输入 yes 确认

  • 若 Redis 配置了密码,需使用:

    redis-cli -a YourSecurePassword123! --cluster create ...


✅ 七、验证集群状态

查看集群状态

redis-cli -h 10.10.10.35 -p 7000 cluster info

看到:

cluster_state: ok

说明集群创建成功。

查看节点分布

redis-cli -h 10.10.10.35 -p 7000 cluster nodes

应能看到:

  • 3 个 master

  • 3 个 slave(每个 slave 对应一个 master)

检查集群健康

redis-cli --cluster check 10.10.10.35:7000


🧩 八、常见问题与解决方案

问题原因解决办法
Connection refused节点未启动 / 防火墙未放行检查服务与端口
Node is not empty节点残留旧集群信息删除 nodes.conf、AOF、RDB 文件后重启
Slot is already busy槽位冲突使用 cluster reset 重置节点后重建集群

示例清理命令:

rm -f /opt/redis-cluster/7000/nodes-7000.conf
rm -f /opt/redis-cluster/7000/appendonly-7000.aof
rm -f /opt/redis-cluster/7000/dump.rdb

重启节点后重新执行创建命令即可。


🧭 九、运维与故障演练

检查集群健康:

redis-cli --cluster check 10.10.10.35:7000

模拟主节点故障:

pkill -f "redis-server.*7000"

此时执行:

redis-cli -h 10.10.10.35 -p 7003 cluster nodes

可看到对应从节点(7003)被自动提升为主节点。
当原主节点恢复上线后,会自动降级为从节点。


🧾 十、完整流程总结

阶段操作
准备阶段各节点创建目录 + 配置文件
启动节点每台服务器启动两个 Redis 实例
创建集群使用 redis-cli --cluster create 命令
确认方案输入 yes 完成主从分配
验证状态使用 cluster infocluster nodes 检查

🎯 结语

到这里,你已经成功搭建了一套 三台服务器六节点高可用 Redis Cluster 集群
该方案不仅实现了自动主从切换,还具备良好的扩展性和故障容错能力。

💬 建议:生产环境务必开启密码验证、防火墙策略,并定期监控节点健康。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值