Redis集群模式2-集群模式
redis高可用的集群模式 使用集群,只需要将每个数据库节点的cluster-enable配置打开即可。每个集群中至少需要三个主数据库才能正常运行。即使使用哨兵,redis每个实例也是全量存储,每个redis存储的内容都是完整的数据,浪费内存且有木桶效应。为了最大化利用内存,可以采用集群,就是分布式存储。即每台redis存储不同的内容。集群至少需要3主3从,且每个实例使用不同的配置文件,主从不用配置,集群会自己选。 修改每个实例的配置文件: 集群的运行: 节点的握手方式:在A节点上执行cluster <ip> <port>命令(IP,port是B节点的地址),通过ping-pong方式来确定两个节点的握手。 集群的每个数据库都被分为16384个槽,通过cluster addslots命令可以将一个或多个槽分配给节点。只有所有16384个槽被分配完了,当前集群才是上线状态,只要有一个槽没有被分配,集群就是下线状态。 每个节点都有自己的slots数组(clusterNode.slots)来决定自己处理哪些槽,同时节点也会将自己的slots数组告知其他节点,这样每个节点处理的槽的分配在整个集群都是透明的。 clusterState结构中的slots数组(clusterState.slots)记录了集群中所有16384个槽的指派信息,slots数组包含16383个项