Redis主从模式是Redis的经典架构,在该架构下,数据的写入(写操作)只会在主节点上进行,在主节点之后的,从节点会自动同步主节点的数据,以保证主从节点间的数据一致性。从节点的主要作用是为主节点分担读的请求,缓解主节点的压力,同时可以提高Redis在读读并发请求时的吞吐量。
Redis主从架构的优点有很多,比如提高了Redis的可用性,如果主节点down掉了,备胎从节点可以顶上,保证Redis服务的高可用,进一步增加了系统的抗击风险;主节点的写性能优化,集中管理数据,分摊读请求,提高系统的并发度;从节点的读可扩展性,在主节点写入数据的同时,从节点处理读请求,减轻主节点的负载压力,极大提升了Redis的读性能。
Redis哨兵模式
Redis哨兵模式是在Redis主从架构的基础上,新增了一组Sentinel(哨兵),用于监视主节点和从节点的运行状态。Sentinel是由一组Redis实例组成的,其目的是监控和提醒Redis环境中的任何问题。当哨兵监测到主节点down掉时,会重新选出一个主节点,进而通知从节点如何进行同步。哨兵模式带来了Redis的高可用,目标在于使Redis集群在遇到节点down掉的情况下,能够自动进行故障转移。
哨兵模式包含一下一些主要特性,比如自动故障转移。哨兵检测到主从节点的down掉后,哨兵可以自动为节点转移,保证Redis的高可用性;Sentinel的决策机制。哨兵负责发现命令是否和所有Redis实例的状态相匹配,依据哨兵的规则,哨兵实现异地容灾,从而强化了Redis的整个安全性;哨兵对事故处理的及时性。哨兵负责监控数据的连接、数据状态以及通信,可以在出现事故时快速处理并恢复Redis服务,在业务上不会产生任何影响。
Redis主从模式和哨兵模式的区别
Redis主从模式和哨兵模式之间有一些细微的区别,比如,哨兵在实现自动故障转移方面比较好;哨兵是集群的管理者,主从是集群的节点之一;失去主节点之后,从节点因此产生的性能消耗会在哨兵模式中表现的严重一些,因此,当性能成为重要问题时,可以使用主从架构,但是在高可用性方面,更利于哨兵模式。总之,在Redis的不同架构中,不管是主从还是哨兵,都有其独特的优势和适用场景,可以根据需求进行选择和配置。