Redis 哈希槽基本概念

哈希槽(hash slot)是来自Redis Cluster的概念, 但在各种集群方案都有使用。

哈希槽是一个key的集合,Redis集群共有16384个哈希槽,每个key通过CRC16散列然后对16384进行取模来决定该key应当被放到哪个槽中,集群中的每个节点负责一部分哈希槽。

以有三个节点的集群为例:

  • 节点A包含0到5500号哈希槽
  • 节点B包含5501到11000号哈希槽
  • 节点C包含11001到16384号哈希槽
    这样的设计有利于对集群进行横向伸缩,若要添加或移除节点只需要将该节点上的槽转移到其它节点即可。

在某些集群方案中,涉及多个key的操作会被限制在一个slot中,如Redis Cluster中的mget/mset操作。

HashTag

HashTag机制可以影响key被分配到的slot,从而可以使用那些被限制在slot中操作。

HashTag即是用{}包裹key的一个子串,如{user:}1, {user:}2。

在设置了HashTag的情况下,集群会根据HashTag决定key分配到的slot, 两个key拥有相同的HashTag:{user:}, 它们会被分配到同一个slot,允许我们使用MGET命令。

通常情况下,HashTag不支持嵌套,即将第一个{和第一个}中间的内容作为HashTag。若花括号中不包含任何内容则会对整个key进行散列,如{}user:。

HashTag可能会使过多的key分配到同一个slot中,造成数据倾斜影响系统的吞吐量,务必谨慎使用。

mset在集群模式设置值时错误 CROSSSLOT Keys in request don’t hash to the same slot

解决方案HashTag

HashTag即是用{}包裹key的一个子串,如{user:}1, {user:}2。

(error) CROSSSLOT Keys in request don‘t hash to the same slot 解决方法相关推荐

  1. 记录go-redis使用集群时,报错:CROSSSLOT Keys in request don‘t hash to the same slot

    问题描述 需求:从一个变化的列表list中取出第一条数据,list 10s更新一次,10s内不能一直取第一条,需要均衡: bug代码: // lua脚本 var copyIndexScript str ...

  2. MySQL显示ERROR 2003 (HY000): Can‘t connect to MySQL server on ‘localhost‘ (10061)解决方法

    MySQL显示ERROR 2003 (HY000): Can't connect to MySQL server on 'localhost' (10061)解决方法 参考文章: (1)MySQL显示 ...

  3. MySQL5.7报错[ERROR] Unix socket lock file is empty /tmp/mysql.sock.lock的解决方法

    MySQL5.7报错[ERROR] Unix socket lock file is empty /tmp/mysql.sock.lock的解决方法 参考文章: (1)MySQL5.7报错[ERROR ...

  4. Error, some other host already uses address 192.168.0.202错误解决方法

    Error, some other host already uses address 192.168.0.202错误解决方法 参考文章: (1)Error, some other host alre ...

  5. win7 、2008 提示Error 1606 Could Not Access Network Location %SystemDrive%/inetpub/wwwroot/ 的错误解决方法

    win7 .2008 提示Error 1606 Could Not Access Network Location %SystemDrive%/inetpub/wwwroot/ 的错误解决方法 参考文 ...

  6. 关于Error in render: TypeError: Cannot read property '0' of null问题的解决方法

    关于Error in render: "TypeError: Cannot read property '0' of null"问题的解决方法 //这里是原生代码块,也就是运行该块 ...

  7. youtube_dl urlopen error EOF occurred in violation of protocol (_ssl.c:nnn) 错误的解决方法

    youtube_dl urlopen error EOF occurred in violation of protocol (_ssl.c:nnn) 错误的解决方法 参考文章: (1)youtube ...

  8. Android出现Error: Invoke-customs are only supported starting with Android O (--min-api 26)的解决方法

    Android出现Error: Invoke-customs are only supported starting with Android O (–min-api 26)的解决方法 在app下的b ...

  9. 【转载】“error LNK1169: 找到一个或多个多重定义的符号”的解决方法

    c++的小细节的地方 原文地址:https://blog.csdn.net/xiaosu123/article/details/5665729 问题描述如下: 有 三个源文件,A.h.B.cpp.C. ...

最新文章

  1. 桌面倒计时2.0 涉及知识点详解及源码分享
  2. qt 使用非系统字库
  3. a为数组名。sizeof(a)和sizeof(a)有什么区别?结果是?
  4. javalibrary 线上_线上的少儿口才培训班-1V1精品课程【演讲与口才吧】
  5. 复盘无人业态的三点心得:起于共享单车,止于何?
  6. Android build.gradle 获取Git 仓库数据
  7. [转]使用wget命令下载Google drive上的文件
  8. UVA211 TheDomino Effect 多米诺效应
  9. java基础篇---网络编程(IP与URL)
  10. 如何搭建html运行环境,搭建真实的运行环境2019.4.22
  11. C语言题目地图上有m个城市,序号依次为1,2,3....m,刚开始你在1,若每次只能从当前城市去往当前序号加1或者加3的城市,要到达m城市(m3),有多少种走法
  12. udp 使用connect优点_一文搞懂TCP和UDP的区别
  13. 单KEY业务,数据库水平切分架构实践
  14. 大岩俊之实用性阅读指南pdf_《实用性阅读指南》:二八法则、笔记法......开启你的阅读技能...
  15. web测试之性能测试
  16. 坐标正反算例题_坐标正算公式例题
  17. 川大计算机类专业的录取分数线,四川大学重点专业排名及录取分数线
  18. JavaScript基于qrcode.js带Logo彩色二维码(艺术二维码)
  19. iPhone支持杜比的机型
  20. 数说故事「行业热点快报」连锁餐饮行业企业动态

热门文章

  1. tensorflow2调用huggingface transformer预训练模型
  2. c语言省2全民,C语言省试题(2-数据类型)101016.ppt
  3. java joda 获取utc时间_java – 使用JodaTime以毫秒为单位的UTC到本地时间
  4. c++17(2)-枚举类enum class
  5. 【机器学习】模型又线上线下不一致怎么办?
  6. (视频+图文)机器学习入门系列-第10章 人工神经网络
  7. 清华博士教你如何用推荐算法技术「找到女朋友」
  8. AI基础:简易数学入门
  9. 网易云信携手房天下打造高质量音视频会议
  10. 如何设计实时数据平台(设计篇)