美文网首页
RedisCluster slot

RedisCluster slot

作者: snakeSkin | 来源:发表于2020-04-17 14:45 被阅读0次

Redis Cluster slot

slot 是什么

我们都知道在集群模式下key是需要进行路由的,那就需要有路由策略,Redis Cluster并没有使用一致性hash的方案,而是使用分配slot的方式进行key路由。

如何分配slot

Redis Cluster为整个集群定义了一共16384个slot,并通过crc16的hash函数来对key进行取模,将结果路由到预先分配过slot的相应节点上。

  • 1.将节点加入Redis Cluster中

  • 2.为集群中的节点分配slot(分配完成后,每个即诶单不仅直到自己的slot列表,还需要知道别的节点的slot列表)

  • 3.分配完成后,key会根据crc16计算出得结果和16384取模进行slot定位,从而定位到具体节点。

举个例子

  • 节点A保存了0-5500的slot

  • 节点B保存了5501-11000的slot

  • 节点C保存了11001-16383的slot

当客户端要执行 SET test 123 实际上会执行crc16(123)

具体流程如下:

  • 客户端调用SET test 123

  • 任意节点接受到指令,将执行crc16(test)=63534

  • 63534%16384=14382

  • 14382术语节点C因此将key test路由到C节点。

    • 因为指令是发到任意节点的,如果这个节点不是C节点,则会触发MOVED命令,将命令发到相应node(各个节点保存了其他节点的slot列表)

重新分配slot

所有分片的算法都会面对一个问题,就是当节点增加或减少时怎么处理,Redis Cluster也不例外

当有节点D加入进来原本的A,B,C节点需要拿出一部分slot给到D,这样的操作就叫做slot重新分配。

redis-trib

redis Cluster 是使用redis-trib来自动实现的slot重新分配

image.png

相关文章

  • RedisCluster slot

    Redis Cluster slot slot 是什么 我们都知道在集群模式下key是需要进行路由的,那就需要有路...

  • redis cluster集群安装

    前言: RedisCluster采用slot分区,所有的键根据哈希函数(CRC16[key]&16383)映射到0...

  • Redis学习笔记(七)集群

    RedisCluster是redis作者亲自实现的一种集群话解决方案。内部分为16384个槽点(slot)redi...

  • Redis目录

    安装 Redis安装 RedisCluster高可用集群搭建(一) RedisCluster高可用集群搭建(二) ...

  • python 连接redis集群

    python连接redis集群需要用到第三方模块rediscluster安装rediscluster : pip ...

  • redis-cluster 常用命令

    在之前的一篇文章已经介绍了RedisCluster及其部署,下面说下RedisCluster日常操作命令: 一、以...

  • 5、搭建redis集群

    高速缓存 搭建rediscluster集群

  • Vue中Slot的渲染过程

    Vue在通过compiler解析模版中的slot, slot是组件中的插槽,通过解析slot,把slot的name...

  • 插槽

    插槽的基础使用,

  • 2-6 vue 匿名插槽-slot

    匿名插槽-slot Slot插槽 —— 实现内容分发 什么是slot?slot的意思是插槽,其目的在于让组件的可扩...

网友评论

      本文标题:RedisCluster slot

      本文链接:https://www.haomeiwen.com/subject/ehfyvhtx.html