广告
返回顶部
首页 > 资讯 > 数据库 >redis中的槽有多少个
  • 463
分享到

redis中的槽有多少个

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

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

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

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

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

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

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

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

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

在redis中,把一个key-value键值对放入的最简单的方式就是set key value,如下所示:

127.0.0.1:7000> set key value
-> Redirected to slot [12539] located at 192.168.39.153:7002
OK
192.168.39.153:7002> get key
"value"
192.168.39.153:7002>

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

Redis Cluster是自己做的crc16的简单hash算法,没有用一致性hash。Redis的作者认为它的crc16(key) mod 16384的效果已经不错了,虽然没有一致性hash灵活,但实现很简单,节点增删时处理起来也很方便。

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

当你往Redis Cluster中加入一个Key时,会根据crc16(key) mod 16384计算这个key应该分布到哪个hash slot中,一个hash slot中会有很多key和value。你可以理解成表的分区,使用单节点时的redis时只有一个表,所有的key都放在这个表里;改用Redis Cluster以后会自动为你生成16384个分区表,你insert数据时会根据上面的简单算法来决定你的key应该存在哪个分区,每个分区里有很多key。

上述内容就是redis中的槽有多少个,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注编程网数据库频道。

您可能感兴趣的文档:

--结束END--

本文标题: redis中的槽有多少个

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

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

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

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

下载Word文档
猜你喜欢
  • redis中的槽有多少个
    本篇文章为大家展示了redis中的槽有多少个,代码简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Redis 集群中内置了 16384 个哈希槽,当需要在 Redis 集群...
    99+
    2022-10-18
  • redis中hash槽有多少个
    redis中hash槽有多少个?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。   Redis 集群中内置了...
    99+
    2022-10-18
  • redis中库有多少个
    redis中库有多少个?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。Redis是一个字典结构的存储服务器,而实际上一个Redi...
    99+
    2022-10-18
  • redis内的一个hash中可以有多少个field
    redis内的一个hash中可以有多少个field?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。hash是一个string类型的field...
    99+
    2022-10-18
  • redis有多少个默认数据库
    小编给大家分享一下redis有多少个默认数据库,希望大家阅读完这篇文章后大所收获,下面让我们一起去探讨吧!redis下,数据库是由一个整数索引标识,而不是由一个数据库名称。默认情况下,一个客户端连接到数据库...
    99+
    2022-10-18
  • Redis cluster集群需要至少多少个redis节点
    这篇文章主要介绍“Redis cluster集群需要至少多少个redis节点”,在日常操作中,相信很多人在Redis cluster集群需要至少多少个redis节点问题上存在疑惑,小编查阅了各式资料,整理出...
    99+
    2022-10-18
  • redis中有多少种数据类型
    这篇文章将为大家详细讲解有关redis中有多少种数据类型,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1、redis的5种数据类型: string 字符串(可以为整形、...
    99+
    2022-10-18
  • Redis集群是16384个槽的原因
    Redis集群是16384个槽的原因?这个问题可能是我们日常学习或工作经常见到的。希望通过这个问题能让你收获颇深。下面是小编给大家带来的参考内容,让我们一起来看看吧!Redis 集群并没有使用一致性hash...
    99+
    2022-10-18
  • 一个字符串中的字符有多少个
    这篇文章给大家介绍一个字符串中的字符有多少个,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。依照Java的文档, Java中的字符内部是以UTF-16编码方式表示的,最小值是 \\u0000 (0),最大值是\\ufff...
    99+
    2023-06-16
  • react中一共有多少个hooks
    这篇文章主要介绍了react中一共有多少个hooks,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。 react共...
    99+
    2022-10-19
  • nodejs有多少个模块
    Node.js是一个流行的JavaScript运行时环境,它具有广泛应用的能力,支持网络服务、命令行工具、实时通信、Web应用等。这些能力是通过使用模块来实现的。所以,node.js模块是node.js的核心,它是所有node.js程序的构...
    99+
    2023-05-14
  • html有多少个版本
    这篇文章主要介绍了html有多少个版本,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。 html有8个版本:1、“...
    99+
    2022-10-19
  • redi默认的dbs有多少个
    本篇文章为大家展示了redi默认的dbs有多少个,代码简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Redis支持多个数据库,并且每个数据库的数据是隔离的不能共享,并且基...
    99+
    2022-10-18
  • JavaScript中整数有多少个字节
    这篇文章主要介绍了JavaScript中整数有多少个字节,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。 在Jav...
    99+
    2022-10-19
  • redis一个实例能存key的数量是多少
    这期内容当中小编将会给大家带来有关redis一个实例能存key的数量是多少,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。redis中默认有编号0-15总共16个db,默认...
    99+
    2022-10-18
  • Redis的底层数据结构有多少种
    小编给大家分享一下Redis的底层数据结构有多少种,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!1、简单动态字符串(SDS)Redis 虽然是用 C 语言写的,但Redis没有直接使用C语言传统的字符串表示(以空字符 &a...
    99+
    2023-06-22
  • 一个Java字符串中有多少个字符
    本篇内容主要讲解“一个Java字符串中有多少个字符”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“一个Java字符串中有多少个字符”吧!依照Java的文档, Java中的字符内部是以UTF-16编...
    99+
    2023-06-16
  • vue-router有多少个钩子
    这篇文章给大家分享的是有关vue-router有多少个钩子的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 有7个钩子:1、beforeEach;2、b...
    99+
    2022-10-19
  • 美国VPS有多少个IP
    美国VPS一般默认只能拥有一个独立IP,如果需要多IP资源,建议选择美国多IP服务器或者了解清楚美国VPS的IP升级规则,是否能够申请加IP,但正常情况下加IP也就只能加几个,因此选择美国多IP服务器相对性价比会更高一些。具体内容如下:美国...
    99+
    2022-10-02
  • c语言中关键字有多少个
    本教程操作环境:windows7系统、c99版本、Dell G3电脑。C语言简洁、紧凑,使用方便、灵活。C语言共有32个关键字,9种控制语句,程序书写形式自由,区分大小写。把高级语言的基本结构和语句与低级语言的实用性结合起来。 C 语言可以...
    99+
    2022-11-22
    关键字 C语言
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作