Redis分片模式集群在CentOS上搭建实践

目录

一、什么是分片集群?

二、如何分片

三、分片过程1. 客户端发送命令到 Redis 分片集群中的任意一个节点。2. 节点根据命令涉及的键的哈希值计算出对应的槽号。3. 节点根据槽号确定该槽所在的节点,并将命令路由到该节点。4. 该节点处理命令并返回结果给客户端。

四、搭建分片集群

1、创建配置文件

2、修改每个目录下的redis-sharding.conf

3、启动reids分片集群

4、创建集群连接

5、在集群中读取和写入数据

6、添加一个节点到集群

7、添加新节点,并设置为从节点

8、查看集群状态

9、监控集群(主从自动切换)

10、故障转移


一、什么是分片集群?

前面谈到哨兵的作用就是无人值守运维,无非就是master宕机,slave再顶上去。但此时会有一个大问题, master挂掉后,写操作会被暂时中断,哨兵们需要投票选举新的master,选举新的leader,由leader推动故障切换流程,至此新的master才能对外提供写操作。在老master宕机到新master上位这个前期,redis服务处于一个半瘫痪状态,只能读不能写,就会导致数据流失,这个过程的持续时间可能还会因为硬件、网络等原因增长。因此承受单点高并发的master只有一个是远远不够的。所以Redis就引入了集群。

Redis集群支持多个Master,每个Master又可以挂载多个Slave——读写分离、支持数据的高可用、支持海量数据的读写存储操作
由于Cluster自带SentineI的故障转移机制,内置了高可用的支持,无需再去使用哨兵功能
客户端与Redis的节点连接,不再需要连接集群中所有的节点,只需要任意连接集群中的一个可用节点即可
 

二、如何分片

Redis集群的槽位slot负责分配到各个物理服务节点,由对应的集群来负责维护节点、插槽和数据之间的关系;Redis集群没有使用一致性hash,而是引入了哈希槽来实现分片集群。哈希槽将整个数据集分成固定数量的槽,每个槽都有一个唯一的编号,通常是从 0 到 16383。
在 Redis 分片集群中,有多个节点(主节点和从节点),每个节点负责存储其中一部分的槽数据。节点之间通过集群间通信协议进行数据的交互和同步。
当一个客户端发送一个命令到 Redis 分片集群时,集群会根据命令涉及的键的哈希值将命令路由到正确的槽上。这个槽所在的节点负责处理这个命令并返回结果给客户端。

三、分片过程

1. 客户端发送命令到 Redis 分片集群中的任意一个节点。
2. 节点根据命令涉及的键的哈希值计算出对应的槽号。
3. 节点根据槽号确定该槽所在的节点,并将命令路由到该节点。
4. 该节点处理命令并返回结果给客户端

当节点加入或离开集群时,Redis 分片集群会自动进行数据的重新分片和迁移,以保持数据的均衡和高可用性。

四、搭建分片集群

ip

Port

角色

192.168.154.129

1001

master

192.168.154.129

1002

master

192.168.154.129

1003

master

192.168.154.129

2001

slave

<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值