Redis的三种集群策略

Redis提供了三种集群策略:


1. 主从模式

  这种模式⽐较简单,真实情况下没有公司会单击使用redis,所以出现了主从模式,默认情况下每个redis都是主机,配置后可以变成从机,主机可以读写,从机只能读,并且会和主机器进⾏数据同步(AOF/RDB,redis默认是使用RDB)。
  这种模式下,客户端直接连主库或某个从库,但是一旦主库或从库宕机后,客户端需要⼿动修改IP,断开期间内redis无法进行写操作。另外,这种模式也⽐较难进⾏扩容,整个集群所能存储的数据受到某台机器的内存容量,所以不可能⽀持特⼤数据量 。

2. 哨兵模式

  这种模式在主从的基础上新增了哨兵节点,哨兵会向各个实例(主机,从机)发送类似心跳链接的命令,如果没有收到回复,就当该服务出现了故障。当主库节点宕机被哨兵发现后,会通过发布\订阅模式通知其他服务器修改配置文件,然后在从机中选择⼀个作为新的主机,但是仍然不能很好的解决Redis的容量上限问题。 再说一点,主机宕机后,哨兵会进行投票选出一个从机当主机,选完之后如果之前的主机恢复运行了,那之前的主机就会变成光杆司令,一个从机都没有。
    哨兵模式通常也不会让一个哨兵对redis服务器进行监视,因为这样可能会出现问题(例如哨兵服务挂了),所以可以使用多个哨兵对服务器进行监控,并让哨兵们互相监控,这样就完成了多哨兵模式,从⽽可以保证但某⼀个哨兵节点宕机后,还有其他哨兵节点可以继续⼯作,这种模式可以⽐较好的保证Redis集群的⾼可⽤,。

3. Cluster模式

  Cluster模式是⽤得⽐较多的模式,它⽀持多主多从,这种模式会按照key进⾏槽位的分配,可以使得不同的key分散到不同的主节点上,利⽤这种模式可以使得整个集群⽀持更⼤的数据容量,同时每个主节点可以拥有⾃⼰的多个从节点,如果该主节点宕机,会从它的从节点中选举⼀个新的主节点。

插一嘴

在多哨兵模式下,哨兵1先检测到主服务器宕机,是不会马上开始选举新的主服务器的,因为此时只有哨兵1主观的认为主服务器不可用,这个现象叫做主观下线。当后面其他的哨兵也检测到了主服务器不可用,并且检测到了的哨兵数量达到一直至时,选举新的主服务器的投票才会开始发起。结果由一个哨兵执行,将主服务器转移后,通过发布\订阅模式,通知各个哨兵把各自监控的服务器的主机进行切换,这种现象叫做客观下线

  对于这三种模式,如果Redis要存的数据量不⼤,可以选择哨兵模式,如果Redis要存的数据量⼤,并且需要持续的扩容,那么选择Cluster模式。

OK 我发言完毕。

猜你喜欢

转载自blog.csdn.net/imagineluopan/article/details/120327943