Cluster集群就是一个提供在多个Redis间节点间共享数据的程序集,是Redis 3.0版本以后引入的,是redis官方推荐的性能最高的集群模式。
架构模型
1.采取了去中心化的思想,没有中心节点
2.其对key的算法并非一致性hash算法,而是采用了哈希槽模型,每个集群拥有16384个hash slot,存储时,使用CRC16算法对key校验,然后对16384取模得到对应的哈希槽。
3.节点之间采用轻量通讯协议,占用带宽少,效率高
4.自动负载均衡,自动failover,支持动态扩展。
5.Cluster模式也是基于主从模式+哨兵衍生出来的,只不过数据节点本身也是哨兵节点,如果有半数节点发现某个节点异常,则共同决定故障节点状态,如果主节点故障,则其从节点晋升为主节点,主节点重启后降级为从节点。但是如果集群没有设置salve节点,一旦主节点挂掉,整个集群便进入fail状态,因为集群的slot映射不完整。如果集群超过半数以上的master挂掉,无论是否有slave,集群都会进入fail状态。
6.集群的规模至少有3台以上的master,这样比较合适集群的部署。