集群分片:槽
1、节点记录自己的槽范围,并将自己的槽范围传播给其它的集群节点,同时接收其它节点传播过来的槽信息。
2、节点之间两两相连。
工作方式:
1、当一个请求到达某个节点时,节点先进行hash,再根据hash的值进行判断属于哪个槽。如果是自己的槽,自己处理。如果不是则根据保存的其它节点槽信息,找到相应的节点,让客户端重定向到指定节点进行请求的处理。
节点的增删
重新分片:redis-trib
增加节点大致步骤:
1、告诉新增节点负责的槽范围。
2、告诉被拆分节点的槽拆分范围。
3、将被拆分节点的槽的相应范围的内容,拷贝到新增节点。
4、通知集群的节点,新增节点和被拆分节点槽的范围变化。
删除节点的步骤,大体如上相同。
故障转移:
1、集群中的主节点,充当哨兵功能。将下线的主节点的从节点,升级为主节点。
2、接下来的操作,就跟主从+哨兵模式下的类似。
故障检测:
1、主节点的下线判断,需要集群中所有的主节点超过半数的投票。(类似哨兵模式)