32_Redis分片集群原理
1.Redis集群分片
1.1 Redis集群分片介绍
Redis集群没有使用一致性hash,而是引入了哈希槽的概念。Redis集群有16384个哈希槽,每个key通过CRC16校验后对16384取模来决定放置哪个槽。
用于将密钥映射到散列插槽的基本算法如下:
HASH_SLOT = CRC16(key) mod 16384
集群的每个节点负责部分hash槽,举个例子,如当前集群有3个节点,那么:
什么是Redis集群的分片?使用Redis集群时我们会将存储的数据分散到多台Redis机器上,这称为分片。简言之,集群中的每个Redis实例都被认为是整个数据的一个分片。
如何找到给定key的分片?为了找到给定key的分片,我们对key进行CRC16(key)算法处理并通过对总分片数量取模;然后,使用确定性哈希函数,这意味着给定的key将多次始终映射到