Redis Cluster
Redis Cluster 是Redis3.0之后,官方提供的Redis集群解决方案,由 Redis 官方团队来实现。
在3.0之前,为了解决容量高可用用方面的需求,基本上只能通过客户端分片 + Redis sentinel或者添加 proxy(twemproxy、codis)方案解决。
Redis Cluster最大的特性,就是对Redis集群提供了水平扩展的能力(horizential scalibility),即当整个 Redis 集群出现存储容量或者性能 bottleneck 时,使用 Redis Cluster 可以通过增加新的 master Redis node从而快速解决bottleneck。
除此之外,Redis Cluster提供了强大的高可用机制(即 failure failover)。即当集群中任何一个master Redis node无法正常工作时(比如因为底层依赖的硬件故障、网络问题),它对应的 slave Redis node就会自动代替它(当然,这里有一个前提,是我们设置了slave Redis node)。
与Codis 和 Twemproxy 不同的是:Redis Cluster并非使用Porxy模式来连接集群节点,而是使用无中心节点的模式来组建集群(即没有coordinator)。
Redis Cluster实现在多个节点之间进行数据共享,即使部分节点失效或者无法进行通讯时,Cluster仍然可以继续处理请求。若每个主节点都有一个从节点支持,在主节点下线或者无法与集群的大多数节点进行通讯的情况下, 从节点提升为主节点,并提供服务,保证Cluster正常运行。
...