- 关于redis cluster 集群
redis cluster集群是分布式的。
1.1 redis 集群数据分片(redis cluster data sharding)-哈希槽的概念
有M个哈希槽,每一个master会有[0,M]个哈希槽slots。当若干个master拥有的哈希槽的集合总数为M时,该redis cluster才能所有读写工做正常态。
1.2 master - slave
slave是master 的replicas,salve自己不占哈希槽slots.一个master能够没有或有任意个slave,每一个master拥有的salve数量是任意的。

当某个master 挂掉(failover)时候,slave会自动顶替它的master

若是某个master恰巧没有slave,挂掉以后,整个redis集群就都挂掉了
1.3 redis 集群的一致性。
redis集群是不保证严格一致性(strong consistency)的,即老是存在某个write,返回成功,而实际没有成功的几率的。由于redis 使用的是异步复制(asynchronous)

你能够使用wait,实现同步复制(synchronous),这会减小write失败的几率,可是对性能就下降了。即便这样也不能保证严格一致性(strong consistency).由于总存在某个状况备份时候,一个slave没有收到master 的write同步,却被选举为master。(it is always possible under more complex failure scenarios that a slave that was not able to receive the write is elected as master).
例如当正好有个write command传入给master A,A存储后回应客户端OK(还来不及slave同步),极短的时间内该master down,它的一个slave 被选举为master,可是该new master根本不知道刚刚的write command的事情。

2.关于Redis cluster 操做大致步骤
ios
参考资料:redis