栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

redis CROSSSLOT Keys in request don‘t hash to the same slot

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

redis CROSSSLOT Keys in request don‘t hash to the same slot

BITOP operation destkey key [key ...]

对一个或多个保存二进制位的字符串 key 进行位元操作,并将结果保存到 destkey 上

执行命令和结果如下:

> 127.0.0.1@6001 connected!
> BITOP AND key1 key2
CROSSSLOT Keys in request don't hash to the same slot
> BITOP AND {key}1 {key}2
0

报错的含义:请求的Key键没有散列到同一个槽位中

查看槽位,当使用hashtag时槽位才相同

> cluster keyslot key1
9189
> cluster keyslot key2
4998
> cluster keyslot {key}1
12539
> cluster keyslot {key}2
12539

Redis 哈希槽和hashtag简单介绍:

Redis集群没有使用一致性hash,而是引入了哈希槽的概念,Redis集群有16384个哈希槽,
每个key通过CRC16 校验后对16384取模来决定放置哪个槽,集群的每个节点负责一部分hash槽。
有一个例外,HashTag可以确保两个键都在同一哈希槽的方式。HashTag即是用{}包裹key的一个子串,
如{key}1, {key}2。在设置了HashTag的情况下,集群会根据HashTag决定key分配到的slot,
两个key拥有相同的HashTag:{key}, 它们会被分配到同一个slot。
注意HashTag使用过多会导致分布不均数据倾斜,需谨慎使用。


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/736996.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号