【愚公系列】2022年05月 .NET架构班 054-分布式中间件 Redis集群的三种方式

举报
愚公搬代码 发表于 2022/05/03 23:44:23 2022/05/03
【摘要】 前言单体redis如下:缺陷:单体redis可能由于各种原因导致宕机的问题。所以,需要使用redis主从集群 一、Redis集群Redis 集群的三种模式主从同步/复制哨兵模式Cluster 集群(官方推荐) 1.主从同步/复制在复制的概念中,数据库分为两类,一类是主数据库(master),另一类是从数据库(slave)。主数据库可以进行读写操作,当写操作导致数据变化时会自动将数据同步给从...

前言

单体redis如下:
在这里插入图片描述
缺陷:单体redis可能由于各种原因导致宕机的问题。所以,需要使用redis主从集群

一、Redis集群

Redis 集群的三种模式

  • 主从同步/复制
  • 哨兵模式
  • Cluster 集群(官方推荐)

1.主从同步/复制

在复制的概念中,数据库分为两类,一类是主数据库(master),另一类是从数据库(slave)。主数据库可以进行读写操作,当写操作导致数据变化时会自动将数据同步给从数据库。而从数据库一般是只读的,并接受主数据库同步过来的数据。一个主数据库可以拥有多个从数据库,而一个从数据库只能拥有一个主数据库。
在这里插入图片描述
缺陷:redis-主从集群,如果主节点宕机。导致整个redis集群不可用,所以,需要使用哨兵集群。

2.哨兵模式

哨兵模式是一种特殊的模式,首先Redis提供了哨兵的命令,哨兵是一个独立的进程,作为进程,它会独立运行。其原理是哨兵通过发送命令,等待Redis服务器响应,从而监控运行的多个Redis实例。

通过发送命令,让Redis服务器返回监控其运行状态,包括主服务器和从服务器;
当哨兵监测到master宕机,会自动将slave切换成master,然后通过发布订阅模式通知其他的从服务器,修改配置文件,让它们切换主机。

然而一个哨兵进程对Redis服务器进行监控,也可能会出现问题,为此,我们可以使用多个哨兵进行监控。各个哨兵之间还会进行监控,这样就形成了多哨兵模式。

在这里插入图片描述
缺陷:无法解决高并发写、无法解决海量数据存储,所以,需要使用redis-cluster。

3.Cluster 集群(官方推荐)

在 Redis 的每一个节点上,都有这么两个东西,一个是插槽(slot),它的的取值范围是:0-16383。还有一个就是cluster,可以理解为是一个集群管理的插件。当我们的存取的 Key到达的时候,Redis 会根据 crc16的算法得出一个结果,然后把结果对 16384 求余数,这样每个 key 都会对应一个编号在 0-16383 之间的哈希槽,通过这个值,去找到对应的插槽所对应的节点,然后直接自动跳转到这个对应的节点上进行存取操作。

为了保证高可用,redis-cluster集群引入了主从模式,一个主节点对应一个或者多个从节点,当主节点宕机的时候,就会启用从节点。当其它主节点ping一个主节点A时,如果半数以上的主节点与A通信超时,那么认为主节点A宕机了。如果主节点A和它的从节点A1都宕机了,那么该集群就无法再提供服务了。

redis-cluster架构说明:

1、6个redis实例。redis-cluster运行需要的角色实例

2、redis-trib.rb。作用:分配redis主从角色
在这里插入图片描述
实际业务缓存架构:
在这里插入图片描述

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。