当前位置: 首页 > 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.lryc.cn/news/585169.html

相关文章:

  • VMware安装Centos 7
  • 包稳定的Docker 安装方式(CentOS)
  • 云、实时、时序数据库混合应用:医疗数据管理的革新与展望(上)
  • 意识边界的算法战争—脑机接口技术重构人类认知的颠覆性挑战
  • C++(STL源码刨析/List)
  • 锂电池自动化生产线的现状与发展
  • 【Java】【力扣】102.二叉树层序遍历
  • 如何将ONLYOFFICE文档集成到Go网页应用中
  • css——width: fit-content 宽度、自适应
  • VR带看:开启多元领域新视界
  • VR协作海外云:跨国企业沉浸式办公解决方案
  • UDP服务器的优缺点都包含哪些?
  • 镜像(Mirror/Image)
  • 如何准确查看服务器网络的利用率?
  • K8s Service 终极解析:源码、性能、故障排查全攻略
  • 深入解码 Docker 镜像与容器的奇妙世界
  • 奇哥面试:RabbitMQ工作模式深度剖析与Spring整合MQ
  • cellphoneDB v5更新与Python环境可视化
  • 环形调制器中的部分调制谐振腔与全调制谐振腔
  • 【每日刷题】x 的平方根
  • 【mac】快捷键使用指南
  • docker0网卡没有ip一步解决
  • 创客匠人:探索 IP 变现时代知识服务的进化方向
  • 工具分享--IP与域名提取工具
  • 操作系统-进程
  • HelloKitty IP 翻红,品牌营销如何借势?
  • 性能狂飙 Gooxi 8卡5090服务器重新定义高密度算力
  • day17 力扣654.最大二叉树 力扣617.合并二叉树 力扣700.二叉搜索树中的搜索 力扣98.验证二叉搜索树
  • Excel 转 JSON by WTSolutions API 文档
  • c++STL-优先队列priority_queue和仿函数