当前位置: 首页 > news >正文

CentOS7.9:Redis‑Cluster集群部署结构化实战教程

一、项目概述

1.1 业务场景说明

Redis‑Cluster 集群采用分片机制,一共有 16384 个哈希槽,数据按照 key‑CRC16 算法分配至各个主节点;官方集群架构标准配置为 3 主 3 从,3 台主节点分担数据存储,每个主节点搭配一台从节点实现数据备份;主节点故障时,从节点自动升级为主节点,实现故障转移,支撑高并发业务。Redis‑Cluster 无中心模式,客户端可直连任意节点。

1.2 环境参数

项目

参数

操作系统

CentOS Linux release 7.9‑2009

Redis 版本

redis‑5.0.10

集群节点(同一服务器)

[192.168.1.10:7001](192.168.1.10:7001)、[192.168.1.10:7002](192.168.1.10:7002)、[192.168.1.10:7003](192.168.1.10:7003)
[192.168.1.10:7004](192.168.1.10:7004)、[192.168.1.10:7005](192.168.1.10:7005)、[192.168.1.10:7006](192.168.1.10:7006)

哈希槽区间

0‑16383,一共 16384 个哈希槽

安全策略

关闭 firewalld、SELinux

安装目录

/usr/local/redis‑cluster

二、前期环境准备

2.1 关闭安全策略

shell
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
sed -i 's/^SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

2.2 编译安装 Redis 基础程序

shell
yum install -y gcc gcc-c++ make
cd /usr/local/src
wget https://download.redis.io/releases/redis-5.0.10.tar.gz
tar -zxf redis-5.0.10.tar.gz
cd redis-5.0.10
make MALLOC=libc
make install PREFIX=/usr/local/redis-cluster

2.3 创建 6 个节点目录,编写配置文件

以 7001 节点配置文件为模板,其余节点只修改端口号。

shell
mkdir -p /usr/local/redis-cluster/{7001,7002,7003,7004,7005,7006}
vi /usr/local/redis-cluster/7001/redis.conf

配置文件内容:

ini
port 7001
bind 0.0.0.0
daemonize yes
pidfile /var/run/redis-7001.pid
logfile "redis.log"
dbfilename dump.rdb
dir /usr/local/redis-cluster/7001
#开启集群模式
cluster-enabled yes
#集群内部配置文件,系统自动生成
cluster-config-file nodes-7001.conf
#节点失联超时时间,毫秒
cluster-node-timeout 15000
requirepass Admin@123456
masterauth Admin@123456

批量复制配置文件并替换端口:

shell
cp /usr/local/redis-cluster/7001/redis.conf /usr/local/redis-cluster/7002/
cp /usr/local/redis-cluster/7001/redis.conf /usr/local/redis-cluster/7003/
cp /usr/local/redis-cluster/7001/redis.conf /usr/local/redis-cluster/7004/
cp /usr/local/redis-cluster/7001/redis.conf /usr/local/redis-cluster/7005/
cp /usr/local/redis-cluster/7001/redis.conf /usr/local/redis-cluster/7006/

sed -i 's/7001/7002/' /usr/local/redis-cluster/7002/redis.conf
sed -i 's/7001/7003/' /usr/local/redis-cluster/7003/redis.conf
sed -i 's/7001/7004/' /usr/local/redis-cluster/7004/redis.conf
sed -i 's/7001/7005/' /usr/local/redis-cluster/7005/redis.conf
sed -i 's/7001/7006/' /usr/local/redis-cluster/7006/redis.conf

2.4 启动全部 6 个 Redis 实例

shell
/usr/local/redis-cluster/bin/redis-server /usr/local/redis-cluster/7001/redis.conf
/usr/local/redis-cluster/bin/redis-server /usr/local/redis-cluster/7002/redis.conf
/usr/local/redis-cluster/bin/redis-server /usr/local/redis-cluster/7003/redis.conf
/usr/local/redis-cluster/bin/redis-server /usr/local/redis-cluster/7004/redis.conf
/usr/local/redis-cluster/bin/redis-server /usr/local/redis-cluster/7005/redis.conf
/usr/local/redis-cluster/bin/redis-server /usr/local/redis-cluster/7006/redis.conf

ps -ef | grep redis

三、创建 Redis‑Cluster 集群(Redis5.0 + 版本命令方式)

3.1 构建集群命令

--cluster‑replicas 1参数代表每个主节点分配 1 个从节点,程序自动分配主从关系。

shell
redis-cli -a Admin@123456 --cluster create \
192.168.1.10:7001 192.168.1.10:7002 192.168.1.10:7003 \
192.168.1.10:7004 192.168.1.10:7005 192.168.1.10:7006 \
--cluster-replicas 1

控制台提示Can I set the above configuration?,输入yes确认创建集群。

四、集群查看命令

4.1 客户端连接集群,‑c 参数开启集群重定向跳转

shell
redis-cli -c -p 7001 -a Admin@123456

4.2 集群内部查看指令(登录集群后执行)

redis
#查看集群整体状态
cluster info
#查看全部节点、主从角色、哈希槽分配、节点ID
cluster nodes

4.3 外部集群检查命令(服务器终端执行)

shell
redis-cli -a Admin@123456 --cluster check 192.168.1.10:7001
redis-cli -a Admin@123456 --cluster info 192.168.1.10:7001

五、集群日常运维(扩容、缩容)

5.1 扩容:添加新主节点 7007

  1. 部署 7007 实例;
  1. 加入集群;
  1. 手动迁移哈希槽,分配数据存储空间。

shell
redis-cli -a Admin@123456 --cluster add-node 192.168.1.10:7007 192.168.1.10:7001
redis-cli -a Admin@123456 --cluster reshard 192.168.1.10:7001

5.2 给已有主节点新增从节点 7008

shell
redis-cli -a Admin@123456 --cluster add-node 192.168.1.10:7008 192.168.1.10:7001 \
--cluster-slave --cluster-master-id 主节点ID

5.3 缩容:删除集群节点

  1. 将待删除节点的哈希槽全部迁移至其他主节点;
  1. 执行节点删除命令。

shell
redis-cli -a Admin@123456 --cluster del-node 192.168.1.10:7001 节点ID

六、故障转移测试流程

  1. 关闭一个主节点进程:kill -9 主进程PID
  1. 集群等待超时后,该主节点对应的从节点自动升级为主节点;
  1. 原故障节点重新启动,自动变为新主节点的从节点;
  1. 使用cluster nodes核对角色切换状态。

七、ks.cfg 批量部署脚本(PXE 自动化装机)

shell
%post
yum install -y gcc gcc-c++ make
cd /usr/local/src
wget https://download.redis.io/releases/redis-5.0.10.tar.gz
tar -zxf redis-5.0.10.tar.gz
cd redis-5.0.10
make MALLOC=libc
make install PREFIX=/usr/local/redis-cluster
mkdir -p /usr/local/redis-cluster/{7001,7002,7003,7004,7005,7006}
#省略配置文件生成与服务启动代码,部署节点环境
%end

八、高频故障总结

故障 1:创建集群失败,节点之间无法通信

  • 原因:防火墙拦截端口,bind 绑定 [127.0.0.1](127.0.0.1);
  • 解决:关闭防火墙,bind 参数改为 [0.0.0.0](0.0.0.0)。

故障 2:执行指令提示 MOVED 报错

  • 原因:连接 Redis 没有添加‑c 集群参数;
  • 解决:redis-cli -c -p 端口登录集群。

故障 3:主节点宕机后,集群没有自动切换

  • 原因:cluster‑node‑timeout 超时时间设置过长;
  • 解决:缩短超时参数,重启 Redis 实例。

故障 4:reshard 哈希槽迁移失败

  • 原因:节点网络不通或者节点 ID 填写错误;
  • 解决:检查网络通信,核对节点 ID。
http://www.jsqmd.com/news/1253832/

相关文章:

  • 马尔可夫过程在强化学习中的核心原理与实践技巧
  • 气象大模型如何实现厘米级内涝预警
  • AI工程与科学严谨性失衡:从Google论文看可靠AI系统构建
  • 【学习笔记】亮相 WAIC 2026 OceanBase 湖库一体 AI 数据库,为东西
  • LMH0030 SDI串行器:辅助数据与控制寄存器深度解析与应用
  • 神经网络PID控制器:工业控制中的智能参数动态调整
  • 2026年度全国头部8家AI搜索GEO优化服务商综合榜单,附GIS地理信息与生成式引擎优化差异详解 - 互联网科技品牌测评
  • 塑料瓶垃圾检测数据集与应用指南
  • 常温染色缸体变形难题:东庚机械结构创新方案解析 - 资讯报道
  • AI短剧创作系统:独立部署与SaaS模式深度解析
  • Windows本地AI聊天助手搭建指南:Ollama+DeepSeek-R1+Cherry Studio
  • AI评估实验算力需求分析与应用方向研究
  • 2023年AI核心争议:NAS、MARL与BPO的技术博弈
  • 2026北京爱马仕回收全攻略:毓典奢品汇正规门店地址与避坑指南 - 二奢行情速报
  • 当网络钓鱼进入“信任滥用”时代
  • LMH0030 SDI串行器芯片:从并行视频到串行传输的完整设计指南
  • 杭州人的在职学历提升指南,选对机构,让努力更有方向 - 浙江教育测评
  • Sora2.0技术解析:AI视频生成如何提升内容生产效率
  • 2026年度劳力士售后收费体系公开 维保项目定价、服务标准全解析 - 劳力士中国服务中心
  • 2026 年成都毛坯房全屋装修攻略,工装酒店装修挑选技巧 - LYL仔仔
  • 企业级AI代码助手:技术架构与工程实践
  • 2026石家庄黄金回收交易升温,市民最该看重什么 - 全城热点
  • 无人机视角下的工地安全装备AI检测数据集构建与应用
  • 90%短剧封面没转化,因为只好看不“有信息”
  • AI技术架构与大模型实战应用解析
  • AI球类赛事拍摄系统全解析:技术原理与实战应用
  • Coze技能开发:Prompt设计与优化实战指南
  • 导航组件库:NavBar、TabBar、侧边栏组件(253)
  • 5款免费AI去水印网站合集,批量在线处理免安装!
  • FPD-Link III SerDes系统实战:从硬件配置到CSI-2链路调试全解析