浅谈4种redis不同部署模式的理解和对比

这篇具有很好参考价值的文章主要介绍了浅谈4种redis不同部署模式的理解和对比。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

redis现在可以说是很多系统项目必备的中间件了,凭借其自身缓存的特性,不管是一些单体的项目还是微服务系统,都能看到redis 的身影;当然,就redis的使用来说,常见的有4中部署方式,下面开始逐一列举:
常见部署模式:
1、单机模式;
2、主从模式;
3、哨兵模式(sentinel);
4、集群模式(redis-cluster);

这四种部署方式是逐层递进的关系,每个序号其实是前一个序号的升级版,可以理解成大序号对应的部署方式是前一个小序号的升级版,弥补了前一个小序号的缺陷而设计的;

一、单机模式

系统架构中只有一个redis节点,没有备用的节点,适用于数据可靠性不高的纯缓存业务场景;可以通过RDB和AOF持久化机制能将数据持久化到硬盘上,但数据是存储在一台服务器上的,如果服务器出现硬盘故障等问题,会导致数据不可用
优点

  • 部署方便,架构简单;
  • 容易维护;

缺点

  • 数据可靠性无法保证;
  • 存在单点故障,服务宕机后,缓存无法使用;
  • 高性能受限于单核 CPU 的处理能力(Redis 是单线程机制),CPU 为主要瓶颈,所以适合操作命令简单,排序、计算较少的场景。也可以考虑用 Memcached 替代

二、主从模式

可以实现两个redis服务部署在不同机器上,一主一从模式;主节点有数据写入后会同步到从节点内,写操作一般在主节点上进行,从节点进行读的操作;从节点可以设置只读属性,但是主节点没有只写属性;
主从模式避免了单机部署的单点故障,实现了读写分离;
优点

  • 实现了读写分离,提供了redis工作效率;在写操作少读操作多的场景下,可以扩充多个从节点,来提高读的效率;
  • 实现了数据备份,可以提供多个数据副本;从节点宕机了,整个redis服务影响很小;

缺点

  • 主节点故障后,会影响服务写的操作,但是读操作可以继续使用,需要通过手动干预,将从节点变为主节点,redis服务才能恢复正常;可用性低;不具备容错和自动恢复的功能;(从数据库中使用SLAVE NO ONE命令将从数据库提升成主数据继续服务,启动之前崩溃的主数据库,然后使用SLAVEOF命令将其设置成新的主数据库的从数据库,即可同步数据。)
  • 主节点只能有一个,对于写操作比较多的场景下写操作压力无法分散,当个主节点存储能力也受到限制;

三、 哨兵模式(sentinel)

为解决前两种模式的缺陷,redis在2.8版本后正式提供了稳定版本的哨兵模式; 哨兵模式核心还是主从复制,只不过在相对于主从模式在主节点宕机导致不可写的情况下,多了一个竞选机制:从所有的从节点竞选出新的主节点。竞选机制的实现,是依赖于在系统中启动一个sentinel进程。哨兵本身也有单点故障的问题,所以在一个一主多从的Redis系统中,可以使用多个哨兵进行监控,哨兵不仅会监控主数据库和从数据库,哨兵之间也会相互监控。每一个哨兵都是一个独立的进程,作为进程,它会独立运行;这样就形成了下面的架构图
浅谈4种redis不同部署模式的理解和对比

哨兵可以监控所有服务器是否可以正常运行,通过发送命令返回监控服务器的运行状态; 当哨兵监控到master宕机了,会自动将slave切换成master,然后通过发布订阅模式通知其他从服务器,修改配置文件,让他们切换master;已经宕机的那台服务也会变为新master的slave节点;也就是说即使原来旧的服务恢复后,不会恢复原来的master身份,而是作为一个新的slave;

优点

  • 实现了故障发现和自动转移;

缺点

  • 主动切换的过程存在服务不可用,切换时间越长,不可用越长;
  • 哨兵模式只有一个主节点对外提供服务,写操作存在单机瓶颈;
  • 中心化的集群实现方案;仅存在一个主节点;

四、集群模式(redis-cluster)

redis在3.0版本后正式推出了Redis Cluster来实现分布式集群解决方案,主要解决 Redis 分布式方面的需求,比如,当遇到单机内存,并发和流量等瓶颈的时候,Redis Cluster 能起到很好的负载均衡的目的。
Redis Cluster 集群节点最小配置 6 个节点以上(3 主 3 从),其中主节点提供读写操作,从节点作为备用节点,不提供请求,只作为故障转移使用。Redis Cluster 采用虚拟槽分区,所有的键根据哈希函数映射到 0~16383 个整数槽内,每个节点负责维护一部分槽以及槽所印映射的键值数据。 cluster集群模式在每台节点上都存储了不同的数据,解决了单机redis容量限制。将数据按照一定规则分配到多台机器,这样redis就行分布式集群高扩展性的优势了;
Redis Cluster采用Sharding技术(分片和路由都是在服务端实现),多主多从,每一个分区都是由一个Redis主机和多个从机组成,片区和片区之间是相互平行的,实现了完全去中心化。架构图如下:
浅谈4种redis不同部署模式的理解和对比

优点

  • 无中心架构,即有多个master节点,不像哨兵模式下仅有一个。这样写的压力就可以分散了
  • 数据按照 slot 存储分布在多个节点,节点间数据共享,可动态调整数据分布;
  • 可扩展性:可线性扩展到 1000 多个节点,节点可动态添加或删除;
  • 高可用性:部分节点不可用时,集群仍可用。节点之间通过 gossip 协议交换状态信息,用投票机制完成 Slave 到 Master 的角色提升。

缺点

  • 如果主节点A和它的从节点A1都宕机了,那么该集群就无法再提供服务了;如果某个槽归属的小群内都不可用时,整个服务仍然是不可用的!通过cluster-require-full-coverageyes 控制该特性, 默认yes 即需要集群完整,方可对外提供服务,设置为no ,其他的小集群仍然可以对外提供服务。

redis-cluster主要是针对海量数据+高并发+高可用的场景,海量数据,如果业务场景的数据量很大,那么建议就用redis-cluster,数据量不是很大时,使用sentinel哨兵就够了。redis-cluster的性能和高可用性均优于哨兵模式。文章来源地址https://www.toymoban.com/news/detail-480111.html

到了这里,关于浅谈4种redis不同部署模式的理解和对比的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Redis——哨兵模式(docker部署redis哨兵)+缓存穿透和雪崩

    自动选取主机的模式。 主从切换技术的方法是:当主服务器宕机后,需要手动把一台从服务器切换为主服务器,这就需要人工干预,费事费力,还会造成段时间内服务不可用。这不是一种推荐的方式,更多时候,我们优先考虑哨兵模式。Redis从2.8开始正式提供了Sentinel(哨兵)架

    2024年02月12日
    浏览(26)
  • Redis(主从复制、哨兵模式、集群)概述及部署

    目录 一、Redis高可用 二、redis持久化 2.1 持久化的功能 2.2 Redis 提供两种方式进行持久化 2.3 RDB 持久化 2.3.1 触发条件  2.3.2 执行流程 2.3.3 启动时加载 2.4 AOF持久化 2.5 执行流程 2.5.1 命令追加(append)  2.5.2 文件写入(write)和文件同步(sync) 2.5.3 文件重写(rewrite) 2.5.3.1 文件重写的

    2024年02月15日
    浏览(26)
  • Linux下安装部署redis(离线模式)

    1.下载redis的安装包 下载地址:Index of /releases/  大家可以自行选择redis的版本,笔者选择的是最新的 2.上传到服务器 前提是我先在服务器上创建了一个目录redis7.2.3,我直接上传到这个目录下 1.解压redis 2.移动解压完成的目录到/usr/local/下 3.进入到redis-7.2.3的目录 4.编译安装 等

    2024年01月17日
    浏览(28)
  • redis7部署集群:包含主从模式、哨兵模式、Cluster集群模式等三种模式

    前言: redis部署集群常见的一般有三种模式:主从模式,Sentinel(哨兵模式),Redis Cluster(高可用Cluster集群),根据不同的需求可自定义选择部署方式。 Redis 主从模式(Replication) 优点: 数据备份:主节点的数据会复制到从节点,提供了数据冗余和一定程度的故障恢复能力

    2024年01月20日
    浏览(65)
  • Spark on Yarn 部署模式运行常用参数和认证参数理解

    Spark支持以下三种部署模式 Client模式:在Client模式下,驱动程序运行在提交应用程序的客户端上。应用程序使用集群中的资源来执行任务。 这种模式适用于开发和调试应用程序,因为它允许开发人员与驱动程序交互并查看应用程序的输出。 Cluster模式:在Cluster模式下,驱动程

    2024年02月06日
    浏览(64)
  • Flink on k8s容器日志生成原理及与Yarn部署时的日志生成模式对比

    最近需要将flink由原先部署到Yarn集群切换到kubernetes集群,在切换之后需要熟悉flink on k8s的运行模式。在使用过程中针对日志模块发现,在k8s的容器中,flink的系统日志只有jobmanager.log/taskmanager.log 两个,而当时在使用Yarn集群部署时,flink的日志会有多个,比如:jobmanager.log、jo

    2024年02月07日
    浏览(26)
  • JS---浅谈前端数据加密的不同方式

    在前端开发中我们经常会遇到对数据 加密 or 解密 的场景,着重介绍下常用的几种加密方式 一、sha1加密 二、AES加解密 三、base64加密 四、MD5加密 四、编码/解码字符串

    2024年02月20日
    浏览(29)
  • 浅谈C#中await运算符在不同类型应用中的不同行为

    C#中的await运算符,因其不会阻塞主线程,可以给用户更好的操作体验,所以广泛的应用于各种C#的应用中。 本文主要分析其在Console程序,Winform程序和WebApi程序中,其工作行为的异同点,来更好的使用该运算符。 await运算符的基本功能是挂起当前的async方法,并直到异步方法

    2024年02月16日
    浏览(27)
  • java + opencv对比图片不同

    1,去官网下载opencv,下载的时候需要注册一个 Oracle 账户,分分钟就能注册。然后安装。我下的是4.7的。 2,找到jar包放进项目里 3,项目结构,比较简单 4,把下载的文件放进C盘 5,主类代码 6,工具类 7,效果图。如果是一张彩色和一张黑白的图片,效果就不太理想了。 资

    2024年02月11日
    浏览(28)
  • 【Redis】浅谈Redis-集群(Cluster)

    下面我们来看看redis的集群实现。 redis集群,即对redis的一种水平扩容,主要解决并发写量太大有性能瓶颈,单台redis容量限制的问题。 n3:一个集群至少有3个master,新master的选举需要大于半数的集群master节点同意才能选举成功,如果只有两个master节点,其中一个宕机了,达不

    2024年02月07日
    浏览(27)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包