Linux 系列(三)——Redis 分布式集群搭建

本文详细介绍了在Linux环境下搭建Redis分布式集群的过程,包括集群架构、容错机制、存储原理、持久化方式以及集群搭建步骤。重点讲解了Redis的槽(slot)分配、节点间的健康检查、数据分散存储和主从复制。在集群搭建中,通过Ruby脚本创建了3个主节点和3个备份节点的集群,并进行了测试验证。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >



      在Redis的安装和部署(Linux)一文中详细介绍了在Linux环境中搭建Redis服务,本文将介绍关于Redis分布式 集群搭建细节。

一、Redis集群架构

1、Redis集群架构图

蓝色的为Redis集群中的每个node节点,节点之间通过ping 命令,测试相互是否连接正常,普通集群没有主从区分,连接任何一个节点操作,都可以转发到其他任意一个节点。

1、Redis 容错机制

 每Redis提供了节点之间相互发送的ping命令,用于测试每个节点的健康状态,集群中连接正常的节点接收到其他节点发送的ping命令时,会返回一个pong字符串。

Redis投票机制:如果一个节点A给B发送ping没有得到pong返回,那么A就会通知其他节点再次给B发送ping,如果集群中超过一半的节点给B发送ping都没有得到返回,那么B就被坐实game over了,所以为了避免单点故障,一般都会为Redis的每个节点提供一个备份节点,B节点挂掉了立马启动B的备份节点服务器。

2、Redis 集群存储原理

每个节点上的数据都不一样,(一样就是主备了)把数据都分散存放到各个节点上进行存储。如何确定哪些类型数据存入哪个节点呢?Redis中槽slot就用于圈定当前节点的存储范围,分散存储使用hash算法,确定什么值放到哪个槽里

### 构建Windows上的Redis分布式集群 #### 配置环境准备 为了在 Windows 上构建 Redis 分布式集群,首先需要安装适用于 Windows 的 Redis 版本。官方并不直接支持 Windows 平台下的原生二进制包,因此推荐通过 Docker 或者 WSL (Windows Subsystem for Linux) 来运行 Redis。 对于希望保持纯 Windows 环境的情况,则可以考虑使用第方编译好的版本或是利用 Chocolatey 这样的软件包管理器来简化部署过程[^1]。 #### 安装Docker并启动容器化服务 如果选择基于 Docker 方案,在本地计算机上完成 Docker Desktop 的配置后,可以通过命令行拉取最新的稳定版镜像,并创建多个实例作为不同端口监听的服务节点: ```bash docker pull redis:latest for i in {7001..7006}; do docker run -d -p $i:$i --name redis-$i redis; done ``` 上述脚本会依次建立六个独立运作的 Redis 实例,它们各自绑定于指定范围内的 TCP 端口号之上[^2]。 #### 修改配置文件适应集群模式 针对每一个已启动的服务单元,应当调整其对应的 `redis.conf` 文件设置项以启用集群特性。具体操作如下所示: - 将 bind 参数设为空白值允许外部连接; - 开启 cluster-enabled yes 启动集群功能; - 设置 node-timeout 和 cluster-config-file 字段确保高可用性和持久化记录集群拓扑结构变化信息; - 调整 port 值匹配实际使用的网络接口地址及端口号。 考虑到跨平台兼容性问题以及后续维护便利性的考量,建议采用统一的方式批量处理所有涉及更改的部分。例如借助 PowerShell 批量编辑文本内容或是在 Linux 子系统内执行相似逻辑的操作流程[^3]。 #### 初始化集群成员关系 当所有的服务器都已经按照预期方式正常工作之后,就可以着手初始化整个系统的初始布局了。这里需要用到 redis-cli 工具提供的特殊指令集——cluster meet <ip> <port>, 用于告知当前节点去认识新的伙伴加入进来形成更大规模的整体架构体系。另外还需要调用 cluster addslots ... 方法分配哈希槽位给各个参与者承担相应的存储职责[^4]. ```powershell # 使用PowerShell循环向首个节点添加其余节点成为集群的一部分 $nodes = @("127.0.0.1:700$i" | %{$i=1..6}) foreach ($node in $nodes){ & "C:\Program Files\Redis-x64\redis-cli.exe"
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值