redis-cluster集群简单描述

1.redis-cluster结构

redis2.9版本出现了redis-cluster,测试版本,从3.0正式推出redis-cluster,这个结构的出现彻底解决了搭建使用高可用分布式集群的难处

redis-cluster是一个既可以高可用主从故障转移,也可以分片计算,分布式处理数据.从结构上来看比之前高可用分布式做了变换,但是主从复制,故障转移依然存在.分布式计算逻辑不是hash取余,不是一致性hash,hash槽道

 

 2.特性

  • 所有节点之间两两互联通信的,底层二进制协议优化传输速度,是redis-cluster的基础 
  • 哨兵进程消失了,但是哨兵逻辑 没有消失,整合到了master中,集群最小结构是需要3个master存在的,master由于两两互联,可以监听集群所有节点通过master执行投票操作管理集群 
  • redis-cli客户端可以只连接其中一个节点,发送命令,就可以实现数据分片的计算,集群内部定义的分片计算逻辑--hash 槽 
  • 在集群中以特殊的内存数据结构记录槽道的数据slot ,分配槽道号 [0,1,2,3…16383]16384个槽道,当数据到达节点之后(set name haha),对key值先做hash取模(散列取余对16384)运算得到 槽道号,槽道号会分片给多个节点管理,通过这种关系key与槽道强耦合的绑定,但是槽道和节点是松耦合,可以实现数据的集群迁移. 

3.槽道的工作效果

搭建的集群中,会有16384个槽道被分配给多个节点,每个节点管理其中一部分槽道

 

分布式计算定义 的计算方法已经是hash槽,外界客户端无论使用哪种分布式计算逻辑,在集群内部都会重新计算分片.

当数据到达某个节点之后,暂时先不处理数据,这个节点作为集群一员先要计算槽道逻辑

1.hash取模 得到0-16383之间整数 
2.节点判断这个整数是否在当前节点管理范围 

  • 所属权判断true 直接处理数据set get del 
  • 所属权为false 重定向客户端到正确节点发送命令 

3.重定向的节点重新执行上述逻辑. 

 

4.数据迁移 
在当前槽道逻辑中,槽道和数据key强耦合,槽道和节点是松耦合,可以将槽道迁移到别的地方,数据也会一并迁移,接触了key和节点强耦合关系

 

换一种方式重新描述一下客户端访问集群任何一个节点的过程

 

当客户端访问集群任何一个节点:

1.key值计算hash取模得到slot槽道 
2.当前节点判断slot归属权 
3.如果归属权为false -----重定向客户端到正确节点 
4.如果归属权为true ------直接处理当前客户端命令 

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值