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

【Centos】Redis Cluster 集群部署图文步骤

Redis Cluster 集群

Redis Cluster 是 Redis 官方提供的分布式解决方案,用于解决单机 Redis 在高并发和大数据量场景下的性能瓶颈和数据存储限制问题。它通过将数据分散到多个节点上,实现数据的分布式存储和高可用性。

基本架构
  1. 节点(Node):Redis Cluster 由多个 Redis 节点组成,每个节点都是一个 Redis 实例。节点之间通过 Gossip 协议进行通信,用于发现新节点、交换节点状态等。
  2. 槽(Slot):Redis Cluster 使用槽(Slot)来分配数据。总共有 16384 个槽,每个键根据其哈希值被分配到一个槽中,然后槽被分配到不同的节点上。这样可以实现数据的分布式存储。
  3. 主从复制:每个节点可以有多个从节点,用于数据的冗余备份。当主节点故障时,从节点可以进行故障转移,接管主节点的工作。
  4. 故障转移:当某个节点出现故障时,集群会自动进行故障转移,将故障节点的槽重新分配给其他节点,并由从节点接管主节点的工作,保证集群的高可用性。
优势
  1. 高可用性
    • 自动故障转移:当主节点故障时,集群会自动将从节点提升为主节点,并重新分配槽,保证集群的正常运行。整个过程对客户端透明,客户端无需手动干预。
    • 冗余备份:通过主从复制机制,每个节点的数据都有多个副本,降低了数据丢失的风险。
  2. 水平扩展
    • 动态扩展:Redis Cluster 支持动态添加和移除节点。当集群的存储容量或计算能力不足时,可以通过添加新的节点来扩展集群。新增节点后,集群会自动将部分槽重新分配到新节点上,实现数据的均衡分布。
    • 负载均衡:数据根据槽分配到不同的节点上,客户端请求也会根据槽的分布分散到不同的节点,从而实现负载均衡,避免单个节点成为性能瓶颈。
  3. 分布式存储
    • 数据分片:通过槽机制将数据分散到多个节点上,每个节点只存储一部分数据,从而突破了单机 Redis 的存储限制,可以支持更大的数据量。
    • 高吞吐量:多个节点同时处理请求,提高了集群的吞吐量,能够更好地应对高并发场景。
  4. 容错能力
    • 节点故障隔离:集群中的节点是独立的,一个节点的故障不会影响其他节点的正常运行。即使部分节点出现故障,集群仍然可以正常提供服务。
    • 自动恢复:当故障节点恢复后,集群会自动将其重新加入,并同步数据,恢复集群的完整性和一致性。
适用场景

Redis Cluster 适用于对数据存储容量和性能要求较高的场景,例如:

  • 大规模缓存系统:在高并发的 Web 应用中,作为缓存层存储热点数据,提高系统的读取速度和响应能力。
  • 消息队列:用于实现分布式消息队列,支持高并发的消息生产和消费。
  • 分布式会话存储:在分布式系统中存储用户会话信息,保证会话数据的高可用性和一致性。
限制

虽然 Redis Cluster 有诸多优势,但也存在一些限制:

  1. 事务支持有限:Redis Cluster 不支持跨多个键的事务操作,因为这些键可能分布在不同的节点上。如果需要跨节点的事务,需要在客户端实现。
  2. 性能瓶颈:虽然集群可以扩展,但在某些极端情况下,如大量节点的故障转移或大规模的数据迁移,可能会对集群性能产生一定影响。
  3. 复杂性增加:相比单机 Redis,Redis Cluster 的架构和运维更加复杂,需要考虑节点的配置、槽的分配、故障转移等多方面的问题。

具体操作步骤如下:

安装包后续会放在博客中
也可以自己下载:
Redis 官方下载页面:https://redis.io/downloads/
不同平台的下载方式
Windows:
可以从 https://github.com/redis-windows/redis-windows/releases 下载适用于 Windows 的 Redis 版本。
也可以从 https://github.com/MicrosoftArchive/redis/releases 下载,这里有 MSI 安装包和免安装的绿色版。
Linux:
可以通过命令行工具(如 wget)从 https://download.redis.io/releases/ 下载源码包,然后进行编译安装。

1.上传将redis整个文件夹上传至/usr/local/中
在这里插入图片描述

2.进入rpm文件夹中
执行:rpm -ivh *.rpm
在这里插入图片描述

3.解压redis
命令: tar -zxvf redis-7.4.2.tar.gz
在这里插入图片描述

4.进入到redis-7.4.2的目录
命令:cd redis-7.4.2
在这里插入图片描述

5…编译安装
命令:sudo make install
6.等待安装
安装完成的目录结构如下
在这里插入图片描述

7.配置Redis节点

  1. 创建配置文件目录:
    命令:mkdir -p /etc/redis/{6371,6372,6373,6374,6375,6376}
    在这里插入图片描述

  2. 创建配置文件:
    为每个节点创建一个redis.conf文件:

touch /etc/redis/6371/redis.conf
touch /etc/redis/6372/redis.conf
touch /etc/redis/6373/redis.conf
touch /etc/redis/6374/redis.conf
touch /etc/redis/6375/redis.conf
touch /etc/redis/6376/redis.conf

例如:配置端口6371的配置文件/etc/redis/6371/redis.conf
命令vi /etc/redis/6371/redis.conf
模板如下:

port 6371
daemonize yes
pidfile /var/run/redis_6371.pid
logfile /var/log/redis_6371.log
dir /etc/redis/6371
protected-mode no
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
appendonly yes

在这里插入图片描述
为其他端口(6371-6376)重复上述步骤,修改对应的端口号。

8.启动Redis实例

  1. 启动每个节点:
    输入以下命令:
for PORT in {6371..6376}; doredis-server /etc/redis/$PORT/redis.conf
done

在这里插入图片描述
检查端口监听:

命令:netstat -tulnp | grep redis
在这里插入图片描述
9.创建集群

  1. 使用rediscli工具创建集群:
redis-cli --cluster create 127.0.0.1:6371 127.0.0.1:6372 127.0.0.1:6373 127.0.0.1:6374 127.0.0.1:6375 127.0.0.1:6376 --cluster-replicas 1

在这里插入图片描述
**
注:cluster-replicas 1表示每个主节点有一个从节点。
如果集群分布在多台机器上,将127.0.0.1替换为实际的IP地址。
根据提示完成集群创建:系统会提示分配槽位等操作,按提示输入yes完成创建。
**
在这里插入图片描述

10.验证集群

连接集群:
redis-cli -c -p 6371
  1. 执行命令验证:
    CLUSTER INFO会显示集群的状态信息。
    输入命令:CLUSTER INFO
    在这里插入图片描述
    CLUSTER NODES会显示所有节点的信息,包括主从关系和槽位分配。
    输入命令:CLUSTER NODES
    验证数据是否能够在主从节点之间同步。
    在这里插入图片描述
    11.测试数据存储
    在这里插入图片描述
http://www.dtcms.com/a/274265.html

相关文章:

  • 如何选择数据可视化工具?从设计效率到图表表现力全解读
  • 【AI学习】大模型微调实践
  • 策略模式实现
  • PyTorch 与 Spring AI 集成实战
  • Matlab裁剪降水数据:1km掩膜制作实战
  • JavaAI时代:重塑企业级智能开发新范式
  • OpenCV 与深度学习:从图像分类到目标检测技术
  • 端口到底是个什么鬼?回答我!
  • 虚幻引擎5 GAS开发俯视角RPG游戏 #06-2:优化EffectActor类
  • 鸿蒙开发之ArkTS数组
  • 深度体验飞算JavaAI:一场Java开发效率的革命
  • HarmonyOS NEXT端云一体化开发初体验
  • IPA软件源预览系统源码(源码下载)
  • 【跟着PMP学习项目管理】项目管理 之 采购管理知识点
  • Axios之核心语法详解
  • 上位机知识篇---常见的文件系统
  • 用数学构建权限系统:从集合论到位运算的高效设计
  • 前端开发—全栈开发
  • 主从服务器完整使用指南
  • 4万亿英伟达,凭什么?
  • SM712.TCT Semtech TVS二极管——电子设备的终极电路守护
  • 和鲸社区深度学习基础训练营2025年关卡2(1)纯numpy
  • 小皮面板搭建pikachu
  • 在 Linux 中配置天气机器人脚本开机自启动的完整指南
  • T16IZ遥控器教程__遥控器与无人机对频
  • 人形机器人公司融合Xsens与Manus动作捕捉技术,利用人工智能训练机器人模仿人类动作,以执行复杂任务
  • 开源“具身大脑” 实现不同机器人群体协作-RoboBrain
  • 弧焊机器人气体全方位节能指南
  • 基于MuJoCo的宇树科技G1机器人基础动作仿真研究
  • 企业培训笔记:Vue3前端框架配置