Redis 集群部署独立服务器教程

本教程详细介绍了 Redis 集群在独立物理服务器上的部署流程,涵盖环境准备(如关闭防火墙、禁用 SELinux)、Redis 编译安装、配置文件定制(启用 cluster-enabled、设置节点端口与绑定地址)、创建集群(使用 redis-cli --cluster create)、节点握手与槽分配,以及基础运维验证(如检查集群状态、模拟故障测试高可用),适用于生产环境单机多实例集群部署场景。

Redis 7 集群部署实战指南:三台独立服务器从零搭建高可用架构

在生产环境中,单节点 Redis 易成瓶颈与单点故障源,本文以 Redis 7.2 为例,基于三台物理/云服务器(IP 分别为 192.168.10.10、192.168.10.11、192.168.10.12),手把手完成真正独立、无容器、无 Docker 的原生集群部署——所有节点均运行在各自干净的 Linux 主机上,不共享任何进程或配置。

✅ 前置准备(每台服务器均执行)

  • 系统:Ubuntu 22.04 LTS 或 CentOS 7+(关闭 SELinux,开放端口 7000–7005)
  • 安装依赖:sudo apt update && sudo apt install -y build-essential tcl(CentOS 用 dnf groupinstall "Development Tools"
  • 创建专用用户:sudo adduser redis --disabled-password --gecos "",并赋予 /opt/redis 目录权限

✅ 步骤一:编译安装 Redis(非 apt 包,确保版本可控)

sudo -u redis wget https://download.redis.io/releases/redis-7.2.5.tar.gz  
sudo -u redis tar -xzf redis-7.2.5.tar.gz -C /opt/redis  
cd /opt/redis/redis-7.2.5 && make && make install  

安装后验证:redis-server --version → 输出 Redis server v=7.2.5

✅ 步骤二:配置独立节点(以 192.168.10.10 为例)
创建 /opt/redis/conf/redis-7000.conf

port 7000  
cluster-enabled yes  
cluster-config-file nodes-7000.conf  
cluster-node-timeout 5000  
bind 192.168.10.10  
protected-mode no  
daemonize yes  
pidfile /var/run/redis-7000.pid  
logfile "/var/log/redis/redis-7000.log"  
dir /opt/redis/data/7000  
appendonly yes  

⚠️ 注意:三台服务器需分别配置 7000–7002(主节点),再各加一个 7003–7005(备用从节点),共 6 个实例(3 主 3 从),全部绑定本机真实 IP,禁用 0.0.1 回环监听。

✅ 步骤三:启动全部实例(每台执行对应端口)

sudo -u redis redis-server /opt/redis/conf/redis-7000.conf  
sudo -u redis redis-server /opt/redis/conf/redis-7001.conf  # 同台可再启一个,但推荐每台仅跑 2 实例防资源争抢  

确认进程:ps aux | grep redis —— 应见 6 个独立 redis-server 进程,监听不同端口与 IP。

✅ 步骤四:集群初始化(仅在任意一台执行一次)

redis-cli --cluster create \
  192.168.10.10:7000 192.168.10.10:7001 \
  192.168.10.11:7000 192.168.10.11:7001 \
  192.168.10.12:7000 192.168.10.12:7001 \
  --cluster-replicas 1

输入 yes 确认分配,命令自动完成槽位划分(16384 slots)、主从配对及握手,全程无需手动 CLUSTER MEET

✅ 验证与运维

  • 查看状态:redis-cli -h 192.168.10.10 -p 7000 cluster nodes | head -5
  • 写入测试:redis-cli -h 192.168.10.10 -p 7000 set hello world → 自动重定向至所属主节点
  • 故障模拟:kill -9 $(pgrep -f "7000"),观察日志中从节点秒级升主,业务无中断

💡 关键提醒:

  • 所有服务器时间必须同步(timedatectl set-ntp on);
  • 不要复用同一台机器多个实例作为“伪集群”——本文强调真·独立服务器,网络隔离更健壮;
  • 生产建议启用 TLS(Redis 7+ 支持)及访问控制(requirepass + user 配置)。

至此,一个跨三台物理服务器、具备自动故障转移与线性扩展能力的 Redis 集群已稳定就绪,全文严格遵循最小依赖、最大隔离原则,拒绝黑盒工具链,回归基础设施本质。(字数:1148)