Redis--集群

集群分片:槽

  1、节点记录自己的槽范围,并将自己的槽范围传播给其它的集群节点,同时接收其它节点传播过来的槽信息。

  2、节点之间两两相连。

工作方式:

  1、当一个请求到达某个节点时,节点先进行hash,再根据hash的值进行判断属于哪个槽。如果是自己的槽,自己处理。如果不是则根据保存的其它节点槽信息,找到相应的节点,让客户端重定向到指定节点进行请求的处理。

节点的增删

重新分片:redis-trib

增加节点大致步骤:  

  1、告诉新增节点负责的槽范围。  

  2、告诉被拆分节点的槽拆分范围。

  3、将被拆分节点的槽的相应范围的内容,拷贝到新增节点。

  4、通知集群的节点,新增节点和被拆分节点槽的范围变化。

  删除节点的步骤,大体如上相同。

故障转移:

  1、集群中的主节点,充当哨兵功能。将下线的主节点的从节点,升级为主节点。

  2、接下来的操作,就跟主从+哨兵模式下的类似。

故障检测:

  1、主节点的下线判断,需要集群中所有的主节点超过半数的投票。(类似哨兵模式)

原文地址:https://www.cnblogs.com/chen--biao/p/9907971.html