一、Redis为什么需要集群?
1.1 Redis单实例的缺陷
- 存在容量有限,流量压力上限的问题。
- 单点故障问题。一旦唯一的实例宕机,数据丢失。
- 即使Redis单点故障,可以通过主从复制replication,和自动故障转移sentinel哨兵机制来解决。但Redis单Master实例提供读写服务,仍然有容量和压力问题。
1.2 Redis集群要做数据分区
为了解决单实例的问题,需要数据分区,构建多个Master实例同时提供读写服务(不仅限于从replica节点提供读服务),那么就需要一定的机制保证数据分区:
- 这样能充分把容量分摊到多台计算机,或能充分利用多核计算机的性能。
- 数据在各个主Master节点间不能混乱
- 当然最好还能支持在线数据热迁移的特性。