• Redis的四种模式:单机、主从、哨兵、集群


    一、简单理解

    单机模式:安装你的redis,启动服务即为单机模式。

    主从模式:一个主节点搭配一个或多个从节点,无自动故障转移功能,主节点发生故障后,需要人工将其中一个从节点设置为主节点。

    哨兵模式:主从模式加上自动故障转移功能即为哨兵模式,主节点发生故障后,会自动将其中一个从节点设置为主节点。

    集群模式:每个节点存储一部分数据,所有节点的数据汇总即为完整的数据,具有自动故障转移功能。

    二、具体介绍

    1.单机模式

    在单机模式下,只运行着一个 Redis 服务器实例,这是最简单的部署方式。

    优点: 部署简单,适合开发和测试环境。

    缺点: 存在单点故障,没有数据冗余或者故障转移的能力,且性能受限于单台机器。

    原理: 所有的数据存储与处理都在单一实例上进行。

    2.主从模式(或称主从复制模式)

    主从模式涉及一个主节点(master)和一个或多个从节点(slave)。从节点是主节点的精确副本,并可以用于读操作,以分担主节点的负载。

    优点: 读操作可以扩展,通过增加从节点数量。从节点可以在主节点故障时实现故障转移。

    缺点: 所有的写操作都必须在主节点进行,因此写操作的扩展性受限。此外,在主节点失效的情况下,系统并不会自动进行故障转移到从节点。

    原理: 主节点负责处理所有写操作,并将数据更改同步到所有从节点。从节点可以接受客户端的读请求。

    3.哨兵(Sentinel)模式

    哨兵模式是建立在主从模式之上的一个系统。它使用一个或多个 Sentinel 进程来监控主从节点的健康状况,并自动执行故障转移操作。

    优点: 实现了更高的可用性,提供了自动故障转移。可以实现主节点的自动选举及故障通知。

    缺点: Sentinel 的部署和配置相对复杂一些,对网络要求更高,网络分区可能导致错误的故障切换。

    原理: Sentinel 进程持续检查主从节点的健康状态。如果主节点失效,Sentinel 会选举一个从节点晋升为新的主节点,其余从节点将更新配置以复制新主节点。

    4.集群模式

    集群模式允许数据在多个节点间自动分片,每个节点只存储一部分数据。

    优点: 提供高可用性和良好的水平扩展能力。当某个节点失效时,只有该节点的一部分数据不可用,而其他节点继续工作。

    缺点: 集群模式更加复杂,需要更多的维护工作,对硬件和网络的要求也更高。

    原理: 数据根据它们的键进行分片,每个分片又称为一个槽(Slot)。集群内部有16384个槽,每个节点负责其中一部分。当进行数据操作时,Redis 使用CRC16算法对键进行哈希计算,然后根据其结果将数据定位到对应的槽,并由相应的节点处理。

    注意:

    不同的部署模式适应不同的应用场景和需求。

    在对数据可靠性和可用性要求极高的生产环境中,通常会选择哨兵模式或集群模式。

    在数据一致性需求高于可用性的场合,哨兵模式可能更合适,因为它能够较好地保持主从节点间数据的同步。

    在需要处理大量数据并且希望实现水平扩展的场景下,集群模式将是更好的选择。

  • 相关阅读:
    【Spring Cloud】网关Gateway的请求过滤工厂RequestRateLimiterGatewayFilterFactory
    我的为人处事真的有问题吗?
    JS 函数总结
    现在可以在Mac桌面上快速打开C知道进行AI提问
    Nginx部署history路由模式的vue项⽬
    EPIC是什么平台?
    【C++】C++11—— 包装器
    笙默考试管理系统-MyExamTest----codemirror(24)
    Python 框架学习 Django篇 (六) ORM关联
    kafka高级特性
  • 原文地址:https://blog.csdn.net/qq_61504864/article/details/134562633