# Redis 集群介绍

> 主从同步
>
> * Redis集群中的数据库复制是通过主从来实现的
> * 主节点（Master）把数据分发给从节点（Slave）
> * 主从同步的好处在于高可用，Redis节点有冗余设计
>
> ![](https://3836016457-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LfnT3088lKmAdd7HarJ%2F-LfnT7osh8cvAGaoM3Y9%2F-LfnTKeojA_67546Ql2M%2F1.png?generation=1558862988519254\&alt=media)

## Redis集群高可用性

采用官方的**RedisCluster方案**，注意redis3.x之后支持，要让 Redis 集群正常工作至少需要 3 个 Master 节点，要想实现高可用，每个 Master 节点要配备 至少 1 个 Slave 节点。根据以上特点和要求，进行如下的集群实施规划： 使用 6 台服务器（物理机或虚拟机）部署 3 个 Master + 3 个 Slave；

> 搭建redis集群时，Redis集群中应该包含奇数个Master，至少应该有3个Master节点，为什么？
>
> 因为redis集群包括PXC集群都有选举机制，当集群中超过一半数量的节点挂点，剩余的节点是无法进行选举组成一个新的集群的。
>
> 比如使用两个节点的Master集群，一个Master节点挂掉，剩余的节点没有超过一半，redis集群不可用。三个节点的Master集群，一个挂掉，剩余节点过半，还可以进行选举组成一个新的集群。

![](https://3836016457-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LfnT3088lKmAdd7HarJ%2F-LfnT7osh8cvAGaoM3Y9%2F-LfnTKeqAo0hG6XTIqIQ%2F2.png?generation=1558862987390366\&alt=media)

> 为什么不需要配置redis的负载均衡？ 因为比如java的spring框架，php的包，nodejs的包内部实现了集群的负载均衡
