9.1 基本概念
由于对Redis的许多概念都有不同的名词解释,所以在介绍Redis Sentinel之前,先对几个名词进行说明,这样便于在后面的介绍中达成一 致,如表9-1所示。
Redis Sentinel是Redis的高可用实现方案,在实际的生产环境中,对提高整个系统的高可用性是非常有帮助的,本节首先会回顾主从复制模式下故 障处理可能产生的问题,而后引出高可用的概念,最后重点分析Redis Sentinel的基本架构、优势,以及是如何实现高可用的。
9.1.1 主从复制的问题
Redis的主从复制模式可以将主节点的数据改变同步给从节点,这样从节点就可以起到两个作用:第一,作为主节点的一个备份,一旦主节点出了 故障不可达的情况,从节点可以作为后备“顶”上来,并且保证数据尽量不丢 失(主从复制是最终一致性)。第二,从节点可以扩展主节点的读能力,一 旦主节点不能支撑住大并发量的读操作,从节点可以在一定程度上帮助主节 点分担读压力。
但是主从复制也带来了以下问题:
·一旦主节点出现故障,需要手动将一个从节点晋升为主节点,同时需 要修改应用方的主节点地址,还需要命令其他从节点去复制新的主节点,整 个过程都需要人工干预。
·主节点的写能力受到单机的限制。
·主节点的存储能力受到单机的限制。
其中第一个问题就是Redis的高可用问题,将在下一个小节进行分析。 第二、三个问题属于Redis的分布式问题,会在第10章介绍。
9.1.2 高可用
Redis主从复制模式下,一旦主节点出现了故障不可达,需要人工干预 进行故障转移,无论对于Redis的应用方还是运维方都带来了很大的不便。