美文网首页码农庄园
浅谈对Redis的三种集群模式的理解

浅谈对Redis的三种集群模式的理解

作者: 小马过河R | 来源:发表于2020-07-23 10:51 被阅读0次

    Redis原生就支持集群,最近都在关注Redis,今天小马就来浅谈一下三种集群模式的理解,便于日后实战。

    redis3.0开始支持集群,redis集群是没有统一的入口的,客户端(client)连接集群的时候连接集群中的任意节点(node)即可,集群内部的节点是相互通信的(PING-PONG机制)。节点分为主节点 (master) ,从节点 (slave) ,数据从主节点向多个从节点上同步。

    1、主从模式

    主从模式因为只有一个主节点可以写,而主,从节点都可以读,所以通常主节点负责写,从节点负责读。 可以理解为数据库的主从复制和读写分离,但这种方式如果主机器挂掉直接导致不可写,必须重启主节点才可以使业务正常,可见其可靠性是有问题的。

    借用一下图,毕竟图比较直观

    2、哨兵(Sentinel)模式

    建立在主从模式的基础上,避免单个master挂了以后,redis不能提供写服务。因为从节点上备份了主节点的所有数据,那么当master挂了以后,sentinel会在slave中选择一个作为master,并修改它们的配置文件,其他slave的配置文件也会被修改,比如slaveof属性会指向新的master,比如之前配置的密码。这一点和consul集群的领导者和候选者的道理是一样的。此时,客户端不直接与Redis连接,而是与哨兵连接,由哨兵来决定提供具体Redis服务。

    3、集群(Cluster)模式

    该模式是企业级开发过程中使用最多的,当数据多得的时候需要动态扩容,前面两种就不是很适用。Cluster模式对数据进行分片,根据一定的规则把redis数据分配到多台机器。这里有点像分库分表的意思。

    该模式是建立在哨兵模式的基础上,只是有N个主节点,而且客户端是可以连接任何一个主节点进行读写,不过此时的从节点仅仅只是备份的作用(这点是和哨兵模式不同,哨兵的从节点是可以被选举为主节点的)。因集群没有使用一致性hash,而是使用的哈希槽,所以可以做到不停止服务来动态扩容。还是看图比较好理解。

    至于如何实现,待小马动手后再回来分享。

    参考:

    超详细,多图文介绍redis集群方式并搭建redis伪集群

    相关文章

      网友评论

        本文标题:浅谈对Redis的三种集群模式的理解

        本文链接:https://www.haomeiwen.com/subject/yluclktx.html