Redis CLUSTER KEYSLOT 命令返回一个整数,用于标识指定键所散列到的哈希槽。该命令主要用来调试和测试,因为它通过一个 API 来暴露 Redis 底层哈希算法的实现。
命令格式
CLUSTER KEYSLOT key
可用版本:>=3.0.0
时间复杂度:O(N),N 为 key 的字节数。
命令返回值
返回哈希槽的值。
示例
该命令的使用示例:
- 客户端库可能会使用 Redis 来测试他们自己的哈希算法,生成随机的键并且使用他们自己实现的算法和 Redis 的 CLUSTER KEYSLOT 命令来散列这些键,然后检查结果是否相同。
- 人们会使用这个命令去检查哈希槽是哪个,然后关联 Redis Cluster 的节点,并且负责一个给定的键。
redis> CLUSTER KEYSLOT somekey
11058
redis> CLUSTER KEYSLOT foo{hash_tag}
(integer) 2515
redis> CLUSTER KEYSLOT bar{hash_tag}
(integer) 2515
redis>
注意该命令实现了完整的哈希算法,包括支持 hash tags,这是 Redis Cluster 键一个特殊的哈希算法,如果键名中存在左右大括号的模式,只会散列在 {和} 之间的字符串,为了去强制将多个键由一个节点来处理。