概述
单体redis一般性能可以满足大部分场景的要求了,但是当业务体量起来的时候,就会要求高可用了。
此时一般会将单机redis扩充至集群,一般3主3从
redis集群中master之间各自存储部分数据,master和slave之间数据则是相同的.
Redis会把每一个master节点映射到0~16383共16384个插槽(hash slot)上,查看集群信息时就能看到.
数据key不是与节点绑定,而是与插槽绑定。redis会根据key的有效部分计算插槽值,分两种情况:
key中包含{},且{}中至少包含1个字符,{}中的部分是有效部分,即计算这个key放到哪个slot上是根据{xx}这部分内容去计算的.这里的{}中的内容就是hashTagkey中不包含{},整个key都是有效部分,即直接根据key去计算放到哪个slot中
demo
key是qqq,那么就根据qqq计算,如果是{xxx}qqq,则根据xxx计算。计算方式是利用CRC16算法得到一个hash值,然后对16384取余,得到的结果就是slot值。
捞张网图




















