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