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使用过多会导致分布不均数据倾斜,需谨慎使用。



