Redis的cluster集群

Redis

集群

使用redis自带的cluster架构可以支撑高并发高可用海量数据

数据分布算法

hash余数算法
一致性hash
  1. 圆环,以手表为例。假设为12个格子
  2. 按照机器的id进行hash,A找到一个位置(比如3点),B找到一个位置(比如7点),C找到一个位置10点
  3. 那么后面数据在3-7范围里面,就放到A节点上,7-10的就放到B节点上面。
  4. 如果其中一个挂掉了,就会将这些数据分到前一个节点上
  5. 优化:每一个节点又同时分成多个,这样避免挂掉之后,数据大量进入。 比如A节点改成369、B节点147
hash slot
  1. 可以看成一个hashmap,有16384个桶
  2. 每个节点负责 16384/节点总数 个桶
  3. 数据进来的时候,会通过 CRC16算法对16384取余,分配到不同的节点去

维护集群元数据

CAP

一致性、可用性、分区容错

集中式存储(基于zookeeper)
  1. 将所有的元数据存在走zookeeper中,有问题能直接反馈
  2. 缺点:集中、元数据存储压力
gossip协议
  1. 互相传播、将更新陆续传到各个节点
  2. 所有节点都持有一份元数据,数据变更,会慢慢传播到各个节点
  3. 一次最多发给5个节点。5个没有通信的节点
  4. 缺点:延时、滞后
通信端口

原来的端口加上10000

几个指令
ping
  1. 发送自己维护的元数据给其他节点
  2. 一次最多选择5个节点(最久没有通信的)
  3. 如果某个节点太久没有通信,则也会立即发给他
pong

收到ping指令后返回的数据,包含自身的状态信息

fail

发现某个节点挂掉的话,就发送这个指令到其他节点

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值