iis服务器助手广告
返回顶部
首页 > 资讯 > 数据库 >为什么redis集群的最大槽数是16384个
  • 161
分享到

为什么redis集群的最大槽数是16384个

2024-04-02 19:04:59 161人浏览 泡泡鱼
摘要

为什么Redis集群的最大槽数是16384个?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。Redis 集群并没有使用一致性ha

为什么Redis集群的最大槽数是16384个?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

Redis 集群并没有使用一致性hash,而是引入了哈希槽的概念。
Redis 集群有16384(2^14)个哈希槽,每个key通过CRC16校验后对16384取模来决定放置哪个槽,集群的每个节点负责一部分hash槽。
这种结构很容易添加或者删除节点,并且无论是添加删除或者修改某一个节点,都不会造成集群不可用的状态。

HASH_SLOT = CRC16(客户端key) mod 16384

CRC16算法产生的hash值有16bit,可以产生的值在0~65535之间。

在redis节点发送心跳包时需要把所有的槽放到这个心跳包里,以便让节点知道当前集群信息,16384=16k,在发送心跳包时使用char进行bitmap压缩后是2k(2 * 8 (8 bit) * 1024(1k) = 2K),也就是说使用2k的空间创建了16k的槽数。

65535=65k,压缩后就是8k(8 * 8 (8 bit) * 1024(1k) = 8K),也就是说需要需要8k的心跳包。
Redis Cluster原理

1.node1和node2首先进行握手meet,知道彼此的存在
2.握手成功后,两个节点会定期发送ping/pong消息,交换数据信息(消息头,消息体)
3.消息头里面有个字段:unsigned char myslots[CLUSTER_SLOTS/8],每一位代表一个槽,如果该位是1,代表该槽属于这个节点
4.消息体中会携带一定数量的其他节点的信息,大约占集群节点总数量的十分之一,至少是3个节点的信息。节点数量越多,消息体内容越大。
5.每秒都在发送ping消息。每秒随机选取5个节点,找出最久没有通信的节点发送ping消息。
6.每100毫秒都会扫描本地节点列表,如果发现节点最近一次接受pong消息的时间大于cluster-node-timeout/2,则立即发送ping消息redis集群的主节点数量基本不可能超过1000个,超过的话可能会导致网络拥堵。

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注编程网数据库频道,感谢您对编程网的支持。

您可能感兴趣的文档:

--结束END--

本文标题: 为什么redis集群的最大槽数是16384个

本文链接: https://www.lsjlt.com/news/53337.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 为什么redis集群的最大槽数是16384个
    为什么redis集群的最大槽数是16384个?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。Redis 集群并没有使用一致性ha...
    99+
    2024-04-02
  • Redis集群是16384个槽的原因
    Redis集群是16384个槽的原因?这个问题可能是我们日常学习或工作经常见到的。希望通过这个问题能让你收获颇深。下面是小编给大家带来的参考内容,让我们一起来看看吧!Redis 集群并没有使用一致性hash...
    99+
    2024-04-02
  • redis槽位为什么是16384
    redis 槽位数量为 16384,原因如下:均匀分配数据,避免数据偏斜。保证数据高可用性,即使一个节点宕机,其槽位也会转移到其他节点。方便伸缩,根据数据量动态添加或移除节点,重新分配槽...
    99+
    2024-04-08
    redis
  • Redis集群指的是什么
    小编给大家分享一下Redis集群指的是什么,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!本文主要围绕如下几个方面介绍集群集群简介...
    99+
    2024-04-02
  • redis sentinel集群为什么要3个以上的节点
    这篇文章将为大家详细讲解有关redis sentinel集群为什么要3个以上的节点,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。3个以上是通过增加 sent...
    99+
    2024-04-02
  • redis集群配置的方法是什么
    在Redis中配置集群需要进行以下步骤: 启动集群模式:首先需要修改Redis的配置文件,将cluster-enabled设置为...
    99+
    2024-04-02
  • redis集群搭建的方法是什么
    要搭建Redis集群,可以按照以下步骤进行操作:1. 准备多台服务器,每台服务器上都安装Redis。2. 在每台服务器上的Redis...
    99+
    2023-09-09
    redis
  • redis主从和集群的区别是什么
    redis主从和集群的区别是什么?这个问题可能是我们日常学习或工作经常见到的。希望通过这个问题能让你收获颇深。下面是小编给大家带来的参考内容,让我们一起来看看吧!主从:通过持久化功能,Redis保证了即使在...
    99+
    2024-04-02
  • redis集群和哨兵的区别是什么
    这篇文章将为大家详细讲解有关redis集群和哨兵的区别是什么,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。        &nbs...
    99+
    2024-04-02
  • java连接redis集群的方法是什么
    在Java中连接Redis集群,可以使用JedisCluster类来实现。JedisCluster是Jedis客户端库提供的用于连接...
    99+
    2024-04-09
    java redis
  • java使用redis集群的方法是什么
    使用Java连接到Redis集群可以通过以下步骤实现: 添加Redis的Java客户端库依赖,比如Jedis或Lettuce等。...
    99+
    2024-04-09
    java
  • springboot redis集群配置的方法是什么
    要配置Spring Boot中的Redis集群,可以使用以下方法:1. 添加Redis依赖项:在`pom.xml`文件中添加Spri...
    99+
    2023-09-16
    springboot redis
  • Redis中集群伸缩的原理是什么
    本篇文章给大家分享的是有关Redis中集群伸缩的原理是什么,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。一、集群扩容1. 手动扩容(1) 准备节点 9007,并加入集群192....
    99+
    2023-06-15
  • docker redis集群搭建的方法是什么
    搭建Redis集群的方法有两种:官方提供的Redis集群模式和第三方工具提供的Redis集群模式。1. 官方提供的Redis集群模式...
    99+
    2023-09-16
    docker redis
  • hadoop集群的最主要瓶颈是什么
    Hadoop集群的最主要瓶颈可能包括以下几个方面: 硬件资源限制:包括CPU、内存、存储等硬件资源的限制可能导致集群性能瓶颈。 ...
    99+
    2024-03-06
    hadoop
  • redis集群离线部署的方法是什么
    Redis集群的离线部署方法如下:1. 下载Redis源码:从Redis官方网站或GitHub上下载最新版的Redis源码。2. 解...
    99+
    2023-08-30
    redis
  • redis集群性能测试的方法是什么
    进行Redis集群性能测试的一种常用方法是使用基准测试工具,如redis-benchmark。以下是一些步骤,可以用来进行Redis...
    99+
    2024-04-09
    redis
  • redis主从集群搭建的方法是什么
    搭建Redis主从集群的方法有以下几种:1. 使用Redis Sentinel(哨兵):Redis Sentinel是Redis官方...
    99+
    2023-09-09
    redis
  • Redis数据是怎么在集群中分布的
    Redis集群中的数据是分布在多个节点上的,每个节点负责存储部分数据并处理相应的请求。Redis集群使用哈希槽(hash slot)...
    99+
    2024-05-07
    Redis
  • k8s部署redis集群实现的方法是什么
    这篇文章主要介绍“k8s部署redis集群实现的方法是什么”,在日常操作中,相信很多人在k8s部署redis集群实现的方法是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”k8s部署redis集群实现的方法...
    99+
    2023-07-05
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作