Redis提供了三种集群方式,下面我重点详解Redis三种集群方式的原理及优缺点等区别@mikechen
1.Redis主从复制定义
主从模式是三种模式中最简单的,主从模式指的是使用一个Redis实例作为主机,其余的实例作为备份机,主机和从机的数据完全一致。
如下图所示:
主机支持数据的写入和读取等各项操作,而从机则只支持与主机数据的同步和读取,也就是说客户端可以将数据写入到主机,由主机自动将数据的写入操作同步到从机。
2.Redis主从复制工作原理
3.Redis主从复制优缺点
Redis主从复制优点:做到读写分离,提高服务器性能;
Redis主从复制缺点:在主从模式中,一旦Master节点由于故障不能提供服务,需要人工将Slave节点晋升为Master节点。
1.为什么需要哨兵模式?
刚刚上面讲到了主从模式当主服务器宕机后,需要手动把一台从服务器切换为主服务器,需要人工干预费事费力,为了解决这个问题出现了哨兵模式。
如下图所示:
哨兵模式由一个或多个Sentinel实例组成的Sentinel系统,它可以监视所有的Master节点和Slave节点,并在被监视的Master节点进入下线状态时,自动将下线Master服务器。
2.哨兵模式工作原理
当主节点出现故障时,由Redis Sentinel自动完成故障发现和转移,并通知应用方,实现高可用性。
如下图所示:
3.哨兵模式的优缺点
哨兵模式优点:最大的优点就是主从可以自动切换,系统更健壮,可用性更高;
哨兵模式缺点:最大的缺点就是还要多维护一套哨兵模式,实现起来也变的更加复杂增加维护成本;
1.为什么需要Redis集群模式
哨兵模式基于主从模式,实现读写分离,它还可以自动切换,系统可用性更高。但是它每个节点存储的数据是一样的,浪费内存,因此在Redis3.0后Cluster集群应运而生。
Redis Cluster是一种服务器Sharding技术(分片和路由都是在服务端实现),采用多主多从,每一个分区都是由一个Redis主机和多个从机组成,片区和片区之间是相互平行的。
2.Redis集群模式原理
在Redis的每一个节点上,都有这么两个东西,一个是插槽(slot),它的的取值范围是:0-16383,还有一个就是cluster。
如下图所示:
当我们的存取的时候Redis会根据crc16的算法得出一个结果,然后把结果对 16384 求余数,这样每个 key 都会对应一个编号在 0-16383 之间的哈希槽。
通过这个值去找到对应的插槽所对应的节点,然后直接自动跳转到这个对应的节点上进行存取操作。
为了保证高可用,RedisCluster集群引入了主从模式,一个主节点对应一个或者多个从节点,当主节点宕机的时候,就会启用从节点。
Redis集群模式应用
主要是针对海量数据+高并发+高可用的海量数据场景,Redis集群模式的性能和高可用性均优于哨兵模式。
作者:陈睿|mikechen 10年+大厂架构经验 mikechen的互联网架构作者
本文由 @mikechen 原创发布于mikechen的互联网架构,未经许可,禁止转载。