• Redis高可用的主从复制、哨兵、cluster集群


    一、Redis 高可用

    1.1 什么是高可用

    web服务器中,高可用是指服务器可以正常访问的时间,衡量的标准是在多长时间内可以提供正常服务(99.9%、99.99%、99.999%等等)。

    高可用的计算公式是1-(宕机时间)/(宕机时间+运行时间)有点类似与网络传输的参数误码率,我们用9的个数表示可用性:

    2个9:99%,一年内宕机时长:1%×365天=3.6524天=87.6h

    4个9:99.99%,一年内宕机时长:0.01%×365天=52.56min

    5个9:99.999%,一年内宕机时长:0.001%*365天=5.265min

    11个9:几乎一年宕机时间只有几秒钟

    但是在Redis语境中,高可用的含义似乎要宽泛一些,除了保证提供正常服务(如主从分离、快速容灾技术),还需要考虑数据容量的扩展、数据安全不会丢失等。

    1.2 Redis的高可用技术

    在Redis中,实现高可用的技术主要包括持久化、主从复制、哨兵和cluster集群,下面分别说明它们的作用,以及解决了什么样的问题。

    • 持久化: 持久化是最简单的高可用方法(有时甚至不被归为高可用的手段),主要作用是数据备份,即将数据存储在硬盘,保证数据不会因进程退出而丢失。

    • 主从复制: 主从复制是高可用Redis的基础,哨兵和集群都是在主从复制基础上实现高可用的。主从复制主要实现了数据的多机备份(和同步),以及对于读操作的负载均衡和简单的故障恢复。

      • 缺陷:故障恢复无法自动化;写操作无法负载均衡;存储能力受到单机的限制。
    • 哨兵: 在主从复制的基础上,哨兵实现了自动化的故障恢复。(主挂了,找一个从成为新的主,哨兵节点进行监控)

      • 缺陷:写操作无法负载均衡;存储能力受到单机的限制。
    • Cluster集群: 通过集群,Redis解决了写操作无法负载均衡,以及存储能力受到单机限制的问题,实现了较为完善的高可用方案。(6台起步,成双成对,3主3从)

    二、Redis主从复制

    主从复制,是指将一台Redis服务器的数据,复制到其他的Redis服务器。前者称为主节点(Master),后者称为从节点(slave);数据的复制是单向的,只能由主节点到从节点。

    默认情况下,每台Redis服务器都是主节点;且一个主节点可以有多个从节点(或没有从节点),但一个从节点只能有一个主节点。

    1.1 主从复制的作用

    • 数据冗余: 主从复制实现了数据的热备份,是持久化之外的一种数据冗余方式。
    • 故障恢复: 当主节点出现问题时,可以由从节点提供服务,实现快速的故障恢复;实际上是一种服务的冗余。
    • 负载均衡: 在主从复制的基础上,配合读写分离,可以由主节点提供写服务,由从节点提供读服务(即写Redis数据时应用连接主节点,读Redis数据时应用连接从节点),分担服务器负载;尤其是在写少读多的场景下,通过多个从节点分担读负载,可以大大提高Redis服务器的并发量。
    • 高可用基石: 除了上述作用以外,主从复制还是哨兵和集群能够实施的基础,因此说主从复制是Redis高可用的基础。

    1.2 主从复制流程

    (1)若启动一个slave机器进程,则它会向Master机器发送一个sync command命令,请求同步连接。

    (2)无论是第一次连接还是重新连接,Master机器都会启动一个后台进程,将数据快照保存到数据文件中(执行rdb操作),同时Master还会记录修改数据的所有命令并缓存在数据文件中.

    (3)后台进程完成缓存操作之后,Master机器就会向slave机器发送数据文件,slave端机器将数据文件保存到硬盘上,然后将其加载到内存中,接着Master机器就会将修改数据的所有操作一并发送给slave端机器。若slave出现故障导致宕机,则恢复正常后会自动重新连接。

    (4)Master机器收到slave端机器的连接后,

  • 相关阅读:
    @Async注解详解+实例
    基于微信小程序的个人健康数据管理平台设计与实现(源码+lw+部署文档+讲解等)
    在Unity中,Instantiate函数用于在场景中创建一个新的游戏对象实例
    -bash: ./deploy.sh: /bin/bash^M: bad interpreter: No such file or directory
    python学习笔记——列表
    java中如何让1+1=3
    SCAUoj实验10 指针与结构体
    猫罐头怎么选?千万别错过这5款好吃放心的猫罐头推荐!
    射频微波芯片设计2:滤波器芯片
    【刷题】BFS题目精选
  • 原文地址:https://blog.csdn.net/shitianyu6/article/details/127763504