本文旨在对redis三种集群方式,分别在概念、优点方面的简单介绍。仅作本人学习记录,快速了解redis的集群模式,不建议需深究底层原理的同学阅读。
1、主从复制
概念:
主从复制是指将一redies服务器的数据,复制到一台或多台的redis服务器上。前者称为主服务器(主节点),后者称为从服务器(从节点)。数据的复制是单向的,只能通过主节点复制到从节点。默认情况下,每部redis服务器都是主节点,一个主节点可有多个从节点,但从节点只能有一主节点。
优点(作用):
①. 数据热备份:
当服务器正常运行时,亦可将主节点的数据 复制到从节点上。
②. 故障恢复:
主节点出现问题时,从节点可以提供服务,实现快速的故障恢复。
③. 负载均衡:
主从读写分离,主节点提供写服务,从节点提供读服务,分担服务器负载,提高服务器性能。
④. 高可用的基石:
哨兵模式,redis-cluster模式的基础。
二、哨兵模式
概念:
在主从复制的基础上 ,该模式提供了哨兵工具来实现自动化的系统监控和自动化主从切换的故障恢复功能。具体,哨兵点监控每个主从节点是否正常运行,若主节点出现故障,按一定的规则将从服务器转换为主服务器。
优点:
①. 兼具主从复制的优点,因为哨兵模式是在主从复制的基础上实现的。
②. 主从可以自动切换,进行故障转移,系统更加健壮,可用性更高。
缺点:
redis较难支持在线扩容,在集群容量达到上限时,在线扩容变得复杂。
三、Redis-cluster模式
概念:
在主从复制和哨兵模式中,仍然只有一个主节点,当并非写请求较大时,两种集群模式不能缓解写压力,从而引申出cluster模式。该集群时由多个redis服务器组成的分布式网络服务集群(即各个节点存储数据不同,区别于主从复制和哨兵模式),集群中有多个主节点,每个主节点可读可写,节点之间互相通信,两两相连,且该模式没有中心节点。
优点:
无中心架构,高可用性,高可扩展性。
工作原理(扩展):
该集群将固定数量的16384个插槽覆盖到不同的节点上,每个key通过CRC16算法计算出的值对16384取模,通过最终值可找到相应节点上的插槽,进行存取操作。