复述中的槽有多少个

  介绍

本篇文章为大家展示了复述中的槽有多少个,代码简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

<强>复述,集群中内置了16384个哈希槽强,当需要在复述,集群中放置一个键-值时,复述,先对关键使用crc16算法算出一个结果,然后把结果对16384求余数,这样每个关键都会对应一个编号在0 - 16383之间的哈希槽,复述,会根据节点数量大致均等的将哈希槽映射到不同的节点.Redis集群没有使用一致性散列,而是引入了哈希槽的概念。

复述,集群有16384个哈希槽,每个键通过crc16校验后对16384取模来决定放置哪个槽。集群的每个节点负责一部分散列槽。这种结构很容易添加或者删除节点,并且无论是添加删除或者修改某一个节点,都不会造成集群不可用的状态。

使用<强>哈希槽的好处就在于可以方便的添加或移除节点。

当需要增加节点时,只需要把其他节点的某些哈希槽挪到新节点就可以了;

当需要移除节点时,只需要把移除节点上的哈希槽挪到其他节点就行了,

在这一点上,我们以后新增或移除节点的时候不用先停掉所有的复述,服务。

在复述中,把一个键-值键值对放入的最简单的方式就是设置键值,如下所示:

127.0.0.1:7000>设置键值   →重定向到槽位于192.168.39.153:7002 [12539]   好吧   192.168.39.153:7002>得到关键   “value"   192.168.39.153:7002>

可以看的出,当我们把关键的值设置成为价值的时候,客户端被重定向到了另一个节点192.168.39.153:7002,这是因为关键对应的槽位是12359,所以我们的键值就被放到了槽12359对应的节点,192.168.39.153:7002了。

复述,集群是自己做的<强> crc16的简单哈希算法强,没有用一致性hash.Redis的作者认为它的crc16(关键)国防部16384的效果已经不错了,虽然没有一致性哈希灵活,但实现很简单,节点增删时处理起来也很方便。

节点增删时不丢失数据和哈希算法没什么关系,不丢失数据要求的是一份数据有多个副本。

当你往复述,集群中加入一个键时,会根据crc16(关键)国防部16384计算这个关键应该分布到哪个散列槽中,一个散列槽中会有很多键和值。你可以理解成表的分区,使用单节点时的复述时只有一个表,所有的关键都放在这个表里;改用复述,集群以后会自动为你生成16384个分区表,你插入数据时会根据上面的简单算法来决定你的关键应该存在哪个分区,每个分区里有很多关键。

上述内容就是复述中的槽有多少个,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注行业资讯频道。

复述中的槽有多少个