Redis提供了三种集群策略:
(1)主从模式:这种模式比较简单,主库可以读写,并且会和从库进行数据同步,这种模式下,客户端直接连接主库或者某个从库,但是一旦主库或者从库宕机后,客户端需要手动修改IP,另外,这种模式也比较难进行扩容,整个集群所能够存储的数据受到某台机器的内存容量限制,所以不可能支持特大数据量。
(2)哨兵模式:这种模式在主从的基础上新增了哨兵节点,一旦主节点宕机后,哨兵会发现主库节点宕机,然后再从库中选择一个库作为新的主库,另外哨兵也可以做集群,从而可以保证一旦某个节点宕机后,还有其他哨兵节点可以继续工作,这种模式可以比较好的保证Redis集群的高可用,但是仍然不能很好的解决Redis的容量上限问题。
(3)Cluster模式:Cluster模式是用的比较多的模式,它支持多主多从,这种模式会按照key进行槽位的分配,可以使得不同的key分散到不同的主节点上,利用这种模式可以使得整个集群支持更大的数据容量,同时每个主节点可以拥有自己的多个从节点,如果该主节点宕机,会从它的从节点中选择一个新的主节点。
对于这三种模式,如果Redis要存储的数据量不大,可以选择使用哨兵模式,如果Redis要存储的数据量很大,并且需要持续的扩容,那么就可以选择Cluster模式。