Redis从单点到集群部署模式(单机模式 主从模式 哨兵模式)

 更新时间:2023年11月07日 10:42:47   作者:cartoon  
这篇文章主要为大家介绍了Redis从单点集群部署模式(单机模式 主从模式 哨兵模式)详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

导读

redis 从单点 -> 集群总共有三个部署模式:单机模式,主从模式,哨兵模式,集群模式

单机模式

新手入门模式。单机模式意味着 Redis 是单点的,部署在一台服务器,挂了就挂了,用在本地测试还可以,但是生产环境就算了。

优势

  • 部署简单
  • 省钱,一台服务器就可以了
  • 不涉及主从复制等,数据强一致

劣势

  • 单点意味着稳定性基本上为 0,挂了就挂了
  • 吞吐量受限于单机资源

主从模式

当流量越来越大,单台机器资源不能无限增长,就需要水平扩展到多个节点,使用多个节点分散承接读流量。

主从模式为主节点承接写流量,从节点承接读流量,二者数据一致通过主节点异步复制(全量复制 / 增量复制)到从节点。

优势

  • 读流量被分摊到多个节点上,读流量支持力度变大
  • 当主节点宕机/不可用时,可以手动切换主节点继续提供服务

劣势

  • 当主节点宕机/不可用时手动切换节点,切换过程中 redis (主节点)不可用,并且会丢失主节点 / 从节点之间未同步的数据
  • 稳定性还是不够,依赖手动切换。不适用于生产。
  • 写流量还是让主节点独自承受,写流量还是靠单机资源支撑

哨兵模式

哨兵模式主要解决主从模式中手动切换的部分,本质上哨兵代替了人,通过 gossip 协议监控主节点的健康情况。

优势

  • 不用手动切换主节点了,切换过程中虽然 redis 也是不可用的,但是这个时间会极大的降低

劣势

  • sentinel 与主节点多了一层心跳检测,有可能 sentinel 与主节点的网络抖动导致重新选举主节点。
  • redis 主从节点吞吐因心跳检测可能稍微降低。

集群模式

集群模式主要解决了两个问题:写流量水平扩展 & 哨兵与主节点的网络抖动。

集群模式主要的架构为:主节点平分 16384 个槽,集群支持主节点的动态上线/下线(需要 rehash),主节点与从节点通过心跳关联,主节点失联后从节点有权发起选举成为主节点(raft 算法)。

优势

  • 自管理集群内主从节点上下线,减少因外部集群网络抖动之类的发起的无效选举
  • 数据按照 slot 存放在多个节点,客户端通过服务端主节点的重定向跳转到具体的槽,可动态调整数据分布
  • 减少了集群整体不可用的概率,某一主节点宕机只影响一部分数据的访问
  • 写流量 & 数据平分到多个节点,集群的写请求瓶颈得到缓解

劣势

  • 集群间状态同步使用 gossip 协议,节点数较多存在较多的心跳网络流量
  • 主节点的上线/下线需要进行 rehash ,当节点内数据较多耗时较长
redis 节点间复制有两种:全量复制 & 部分复制

全量复制

出现场景

  • 从节点刚上线需要同步主节点的数据
  • 从节点切换脑裂后从节点偏移量与主节点不一致的时间点
  • 从节点偏移量不在主节点的复制缓冲区中

过程

  • 从节点向主节点发起同步数据的请求
  • 主节点通过 bgsave 形成当前数据的快照,发给从节点
  • 从节点删除历史数据,加载主节点发过来 RDB 文件
  • 从节点拉取主节点缓冲区数据,加载到自身的内存中,并更新当前的偏移量

部分复制

出现场景

  • 全量复制出现场景之外的场景
  • 主从日常复制

过程

  • 主节点将命令同步到缓冲区(AOF)
  • 从节点拉取缓冲区数据,更新到自身的节点中,并更新当前的偏移量

以上就是Redis从单点集群部署模式(单机模式 主从模式 哨兵模式)的详细内容,更多关于Redis单点集群部署模式的资料请关注脚本之家其它相关文章!

相关文章

  • Redis缓存雪崩的物种解决方案

    Redis缓存雪崩的物种解决方案

    在高并发系统中,Redis作为核心缓存组件,通常扮演着重要的"守门员"角色,当大量缓存同时失效时,会导致请求如洪水般直接涌向数据库,造成数据库瞬间压力剧增甚至宕机,这种现象被形象地称为"缓存雪崩",本文给大家介绍了Redis缓存雪崩的5种应对措施,需要的朋友可以参考下
    2025-04-04
  • redis开启过期监听的实现示例

    redis开启过期监听的实现示例

    在Java项目中使用Redis的过期监听功能来实现订单未付款到期自动取消,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-11-11
  • SpringBoot 开启Redis缓存及使用方法

    SpringBoot 开启Redis缓存及使用方法

    用redis做缓存,是因为redis有着很优秀的读写能力,在集群下可以保证数据的高可用,那么今天通过本文给大家讲解下SpringBoot使用Redis的缓存的方法,感兴趣的朋友一起看看吧
    2021-08-08
  • Redis实现分布式锁的示例代码

    Redis实现分布式锁的示例代码

    分布式锁其实就是,控制分布式系统不同进程共同访问共享资源的一种锁的实现,本文就来介绍一下Redis实现分布式锁的示例代码,具有一定的参考价值,感兴趣的可以了解一下
    2024-08-08
  • Redis Cluster集群收缩主从节点详细教程

    Redis Cluster集群收缩主从节点详细教程

    集群收缩的源端就是要下线的主节点,目标端就是在线的主节点,这篇文章主要介绍了Redis Cluster集群收缩主从节点详细教程,需要的朋友可以参考下
    2021-11-11
  • Redis三种常用的缓存读写策略步骤详解

    Redis三种常用的缓存读写策略步骤详解

    Redis有三种读写策略分别是:旁路缓存模式策略、读写穿透策略、异步缓存写入策略,接下来通过本文给大家详细介绍下Redis三种常用的缓存读写策略,感兴趣的朋友一起看看吧
    2022-05-05
  • Linux下Redis集群搭建全过程(主从+哨兵)

    Linux下Redis集群搭建全过程(主从+哨兵)

    这篇文章主要介绍了Linux下Redis集群搭建全过程(主从+哨兵),具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-07-07
  • Redis分布式锁升级版RedLock及SpringBoot实现方法

    Redis分布式锁升级版RedLock及SpringBoot实现方法

    这篇文章主要介绍了Redis分布式锁升级版RedLock及SpringBoot实现,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-02-02
  • redis数据类型及应用场景知识点总结

    redis数据类型及应用场景知识点总结

    在本篇文章里小编给大家整理的是关于
    2020-02-02
  • Redis的安全机制详细介绍及配置方法

    Redis的安全机制详细介绍及配置方法

    本文介绍Redis安全机制的配置方法,包括绑定IP地址、设置密码、保护模式、禁用危险命令、防火墙限制、TLS加密、客户端连接限制、最大内存使用和日志审计等,通过合理配置这些安全机制,可以有效地保护Redis实例免受未授权访问和其他潜在的安全威胁,感兴趣的朋友一起看看吧
    2025-11-11

最新评论