redis集群扩容和缩容_Full-Stack-Notes

Redis Cluster

一、集群模式介绍

1.1 数据分区

1.2 节点通讯

1.3 请求路由

1.4 故障发现

1.5 故障恢复

二、集群模式搭建

2.1 节点配置

2.2 启动集群

2.3 集群完整性校验

2.4 关于版本差异的说明

三、集群伸缩

3.1 集群扩容

3.2 集群缩容

一、集群模式介绍

Redis Cluster 是 Redis 官方提供的分布式实现,在 Redis 3.0 版本正式推出,通过集群模式可以扩展单机的性能瓶颈,同时也可以通过横向扩展来实现扩容。此外,Redis 集群模式还提供了副本迁移机制,用于保证数据的安全和提高集群的容错能力,从而实现高可用。

1.1 数据分区

Redis Cluster 采用虚拟槽进行分区,槽是集群内数据管理和迁移的基本单位。所有的键根据哈希函数映射到 16384 个整数槽内,每个节点负责维护一部分槽及槽上的数据,计算公式如下:

HASH_SLOT = CRC16(key) mod 16384

假设现在有一个 6 个节点的集群,分别有 3 个 Master 点和 3 个 Slave 节点,槽会尽量均匀的分布在所有 Master 节点上。数据经过散列后存储在指定的 Master 节点上,之后 Slave 节点会进行对应的复制操作。这里再次说明一下槽只是一个虚拟的概念,并不是数据存放的实际载体。

redis-%E9%9B%86%E7%BE%A4%E6%9E%B6%E6%9E%84.png

1.2 节点通讯

在 Redis 分布式架构中,每个节点都存储有整个集群所有节点的元数据信息,这是通过 P2P 的 Gossip 协议来实现的。集群中的每个节点都会单独开辟一个 TCP 通道,用于节点之间彼此通信,通信端口号在基础端口上加 10000;每个节点定期通过特定的规则选择部分节点发送 ping 消息,接收到 ping 信息的节点用 pong 消息作为响应,通过一段时间的彼此通信,最终所有节点都会达到一致的状态,每个节点都会知道整个集群全部节点的状态信息,从而到达集群状态同步的目的。

redis%E8%8A%82%E7%82%B9%E9%80%9A%E8%AE%AF.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值