Redis进阶 | 06.Redis高可用策略

本文详细介绍了Redis的三种高可用性模式:主从模式实现读写分离,哨兵模式监控并自动故障转移,以及集群模式实现数据分片存储。哨兵系统能自动选举新Master,而集群模式解决了数据一致性问题,允许数据在多个节点间分散,提高系统容错性。
摘要由CSDN通过智能技术生成

参考文章

redis系列之——高可用(主从、哨兵、集群)

1.主从模式(Master - Slave)

整体概述

一个主节点(Master),多个从节点(Slave),从节点下还可以有从节点

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qcaOGcSQ-1619832860463)(/var/folders/y1/tb_pgrms5dq8wq0ssjz1fgzh0000gn/T/abnerworks.Typora/image-20210501083342159.png)]

  • Master可读可写;
  • Slave只读,不断载入rdb文件,与Master保持同步。

Slave与Master保持同步的流程如下:

  1. Slave向Master发送SYNC指令;
  2. Master接收到指令,调用folk( )创建子进程,将数据写入到rdb文件中。在此期间的指令会被记录到缓冲区中(注意这里与RDB持久化不同,RDB持久化是不会将指令记录在缓冲区的);
  3. Slave丢弃旧数据,载入rdb文件
  4. Slave在载入rdb文件之后,读取缓冲区指令并将数据写入。

优缺点

  • 优点:读写分离,负载均衡;

  • 缺点

    – Master如果崩溃,需要等待重启;

    – 所有主机存储的数据一致

2.哨兵模式(Sentinel)

哨兵模式是基于主从模式的

哨兵并不是Redis服务,是一个独立的进程,作用就是监控多个Redis结点的运行情况。

img

哨兵的作用

  • 向监视的所有Redis结点发送指令,监控其运行状态
  • 当检测到Master宕机,所有的哨兵通过选举机制选出一台Slave作为新的Master;
  • 选出新的Master之后,通过发布订阅模式通知其他的Slave,更换他们跟随的Master。

优缺点

  • 优点

    – 读写分离,负载均衡;

    – 当监视的Master挂掉,Sentinel会通过选举机制选出新的Master;

  • 缺点:所有节点存储的数据一致。

3.集群模式(Cluster)

将数据分片存储(下图表示数据分成三个分片),解决多台节点存储数据一致的问题。

每个分片内部可以是主从模式哨兵模式(下图表示一主一从)

image-20220411205110612

集群模式对数据的访问

在集群模式下,每个分片中存储的数据都是不一样的,

但仍然可以访问任意一个节点来尝试获取数据,Redis在判断key不在本节点时,会跳转到这个key对应的结点中去从而完成查询。

举例:数据分为三个分片,存储的key分别是[0, 60)[60, 120)[120, 180),对应的Master分别是Master1Master2Master3

当你希望在Slave1访问key=179的数据,Slave1判断这个key不属于本节点,就会重新计算,并把这次访问的请求发送给正确的节点(Master3

image-20220411212128657

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值