赞
踩
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使用过多会导致分布不均数据倾斜,需谨慎使用。
-
-
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。