首页 > 数据库 >Redis集群的三种方式详解(附优缺点及原理区别)

Redis集群的三种方式详解(附优缺点及原理区别)

时间:2022-12-22 11:11:50浏览次数:54  
标签:Redis 优缺点 主从 模式 哨兵 详解 集群 节点

Redis集群的三种方式详解(附优缺点及原理区别)-mikechen的互联网架构

Redis提供了三种集群方式,下面我重点详解Redis三种集群方式的原理及优缺点等区别@mikechen

目录

Redis主从复制模式

1.Redis主从复制定义

主从模式是三种模式中最简单的,主从模式指的是使用一个Redis实例作为主机,其余的实例作为备份机,主机和从机的数据完全一致。

如下图所示:

Redis集群的三种方式详解(附优缺点及原理区别)-mikechen的互联网架构

主机支持数据的写入和读取等各项操作,而从机则只支持与主机数据的同步和读取,也就是说客户端可以将数据写入到主机,由主机自动将数据的写入操作同步到从机。

 

2.Redis主从复制工作原理

Redis集群的三种方式详解(附优缺点及原理区别)-mikechen的互联网架构

  • 当slave启动后主动向master发送SYNC命令;
  • master接收到SYNC命令后在后台保存快照和缓存保存快照这段时间的命令,然后将保存的快照文件和缓存的命令发送给slave;
  • slave接收到快照文件和命令后加载快照文件和缓存的执行命令;
  • 复制初始化后,master每次接收到的写命令都会同步发送给slave,保证主从数据一致性。

 

3.Redis主从复制优缺点

Redis主从复制优点:做到读写分离,提高服务器性能;

Redis主从复制缺点:在主从模式中,一旦Master节点由于故障不能提供服务,需要人工将Slave节点晋升为Master节点。

 

Redis哨兵模式

1.为什么需要哨兵模式?

刚刚上面讲到了主从模式当主服务器宕机后,需要手动把一台从服务器切换为主服务器,需要人工干预费事费力,为了解决这个问题出现了哨兵模式。

如下图所示:

Redis集群的三种方式详解(附优缺点及原理区别)-mikechen的互联网架构

哨兵模式由一个或多个Sentinel实例组成的Sentinel系统,它可以监视所有的Master节点和Slave节点,并在被监视的Master节点进入下线状态时,自动将下线Master服务器。

2.哨兵模式工作原理

当主节点出现故障时,由Redis Sentinel自动完成故障发现和转移,并通知应用方,实现高可用性。

如下图所示:

Redis集群的三种方式详解(附优缺点及原理区别)-mikechen的互联网架构
  1. 哨兵机制建立了多个哨兵节点(进程),共同监控数据节点的运行状况。
  2. 同时哨兵节点之间也互相通信,交换对主从节点的监控状况。
  3. 每隔1秒每个哨兵会向整个集群:Master主服务器+Slave从服务器+其他Sentinel(哨兵)进程,发送一次ping命令做一次心跳检测。

 

3.哨兵模式的优缺点

哨兵模式优点:最大的优点就是主从可以自动切换,系统更健壮,可用性更高;

哨兵模式缺点:最大的缺点就是还要多维护一套哨兵模式,实现起来也变的更加复杂增加维护成本;

 

Redis集群模式

1.为什么需要Redis集群模式

哨兵模式基于主从模式,实现读写分离,它还可以自动切换,系统可用性更高。但是它每个节点存储的数据是一样的,浪费内存,因此在Redis3.0后Cluster集群应运而生。

Redis Cluster是一种服务器Sharding技术(分片和路由都是在服务端实现),采用多主多从,每一个分区都是由一个Redis主机和多个从机组成,片区和片区之间是相互平行的。

 

2.Redis集群模式原理

在Redis的每一个节点上,都有这么两个东西,一个是插槽(slot),它的的取值范围是:0-16383,还有一个就是cluster。

如下图所示:

Redis集群的三种方式详解(附优缺点及原理区别)-mikechen的互联网架构

当我们的存取的时候Redis会根据crc16的算法得出一个结果,然后把结果对 16384 求余数,这样每个 key 都会对应一个编号在 0-16383 之间的哈希槽。

通过这个值去找到对应的插槽所对应的节点,然后直接自动跳转到这个对应的节点上进行存取操作。

为了保证高可用,RedisCluster集群引入了主从模式,一个主节点对应一个或者多个从节点,当主节点宕机的时候,就会启用从节点。

Redis集群模式应用

主要是针对海量数据+高并发+高可用的海量数据场景,Redis集群模式的性能和高可用性均优于哨兵模式。

 

作者简介

陈睿|mikechen,10年+大厂架构经验,mikechen的互联网架构作者,专注于互联网架构技术。

阅读mikechen的互联网架构更多技术文章合集

Java并发|JVM|MySQL|Spring|Redis|分布式|高并发

标签:Redis,优缺点,主从,模式,哨兵,详解,集群,节点
From: https://www.cnblogs.com/mikechenshare/p/16997965.html

相关文章

  • 嵌入式:ARM多寄存器存取指令详解
    多寄存器传送指令可以用一条指令将16个可见寄存器(R0~R15)的任意子集合(或全部)存储到存储器或从存储器中读取数据到该寄存器集合中。如:可将寄存器列表保存到堆栈,也可将寄存器列......
  • 刨根问底 Redis, 面试过程真好使(缓存穿透,缓存击穿,缓存雪崩等)
      在Web应用发展的初期阶段,一个网站的访问量本身就不是很高,直接使用关系型数据库就可以应付绝大部分场景。但是随着互联网时代的崛起,人们对于网站访问速度有着越来......
  • Selenium~鼠标常用操作详解
    点击查阅-->Selenium~鼠标常用操作详解......
  • 详解MQ消息队列及四大主流MQ的优缺点
    前言近期有了想跳槽的打算,所以自己想巩固一下自己的技术,想了解一些面试比较容易加分的项,近期准备深入研究一下Redis和MQ这两样,这总体上都是为了解决服务器并发的原因,刚翻......
  • WebFlux 详解
    今天我们开始来学习下​​WebFlux​​,为什么突然要学这个东西?因为我之前是想学习​​SpringCloudGateway​​​来着,然后发现它是基于​​Spring5.0+SpringBoot2.0+Web......
  • 【Spring专题】「开发指南」夯实实战基础功底之解读logback-spring.xml文件的详解实现
    logback的maven配置<dependency><groupId>org.slf4j</groupId><artifactId>slf4j-api</artifactId><version>2.0.3</version></dependency><dependency>......
  • Docker高级篇:实战Redis集群!从3主3从变为4主4从
    通过前面两篇,我们学会了三主三从的Redis集群搭建及主从容错切换迁移,随着业务增加,可能会有主从扩容的,所以,本文我们来实战主从扩容PS本系列:《Docker学习系列》教程已经发布的......
  • MVC_jsp演示历史以及MVC详解
    MVC_jsp演示历史jsp演变历史1、早期只有servlet,只能使用response输出标签数据,非常麻烦2、后来有jsp,简化了Servlet的开发,如果过度使用jsp,在jsp中即写大量的java......
  • RedisTemplate简单操作redis
    需要的依赖<!--操作redis的依赖--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-da......
  • 谈谈 Redis 的过期策略
    在日常开发中,我们使用Redis存储key时通常会设置一个过期时间,但是Redis是怎么删除过期的key,而且Redis是单线程的,删除key会不会造成阻塞。要搞清楚这些,就要了解R......