it编程 > 数据库 > Redis

Redis集群部署模式的不同实现过程

25人参与 2025-05-14 Redis

redis集群就是多个redis节点一起工作的模式。它没有代理节点和中心节点,各个节点平等,强化redis的读写能力。

是一种分布式集群模式,它允许将数据分散存储在多个节点上,从而提供了横向扩展、高可用性和更大存储容量。

1、集群模式

通过添加服务器的数量,提供相同的服务,从而让服务器达到一个稳定、高效的状态。

1.1. 主从复制模式(master-slave replication)

1.描述

在这种模式下,redis 实例可以设置为主节点(master)和从节点(slave)。主节点负责处理所有的读写请求,从节点负责部分读请求,从节点自动从主节点进行数据复制。

如下图所示:

2.原理:

根据从数据集id(继承master的id)和offset偏移量来进行判断。

如果是首次同步,会保存master的数据集id和offset,同时将rdb文件或者aof文件,发送baklog命令给从节点,增量同步数据。

如下图所示:

3.优点:

4.缺点

1.2. redis 集群模式(cluster mode)

1.描述

如下图所示:

通常集群模式下:可以进行一主多从、一主一从的方式。下面会进行深入了解。

2.工作原理

如下图所示:

3.优点

4.缺点

1.3. 哨兵模式(sentinel mode)

1.描述

sentinel 是 redis 提供的高可用性解决方案,主要用于监控和故障转移。sentinel 可以监控主节点和从节点的健康状态,并在主节点宕机时进行自动切换。

如下图所示:

2.工作原理

如下图所示:

3.优点

4.缺点

1.4. redis cluster + sentinel

1.描述

结合使用 redis 集群和 sentinel,充分利用二者的优势。redis 集群处理数据分片,sentinel 监控和维护集群的高可用性。

2.应用场景

对于大型应用,需要高可用性和可扩展性的场景,结合使用集群模式和 sentinel 模式。

3.优点:

1、将数据自动切分(split)到多个节点

2、当集群中的某一个节点故障时,redis还可以继续处理客户端的请求。

总结:

redis 提供的多种集群模式适用于不同的场景:

关于哨兵模式和cluster+哨兵模式区别

关于上面几种模式的区别,可以得出以下的结论:

2. 最小节点配置

在 redis 集群中,为了确保高可用性和故障恢复,建议至少配置以下节点:

如下图所示:

每个 slave 都是对应 master 的备份。当 master 节点发生故障时,对应的 slave 节点会自动升级为新的 master,保持数据的可用性。

2.1、最小节点配置

主节点(master nodes):

最少需要 3 个主节点。这可以确保在某个主节点失效的情况下,集群仍然能够提供服务。

从节点(replica nodes):

至少需要 3 个从节点,每个主节点对应一个从节点,用于数据备份和故障转移。

2.2、整体配置

因此,最小的集群配置为 6 个节点:

2.3、理由

2.4、故障恢复

在以上配置中:

如果希望更具恢复能力和负载均衡,可以增加主节点和从节点的数量,常见的做法是保持主从节点的比例为 1:1。

而对于集群为什么要三个master节点原因,并且推荐为奇数?

3. 单主多从

整体结构如下图所示:

3.1、优势

容错:

如果主节点出现故障,redis 可以提升一个从节点为新的主节点。即使有一个主节点出现故障,仍然有多个从节点作为冗余,确保数据的可靠性和业务的持续性。

负载均衡:

在高读负载的应用场景中,可以将读取请求分配到从节点,减轻主节点的压力。这种方式可以提高性能,特别是在读操作远比写操作频繁的情况下。

节省资源:

对于一些小型应用或开发阶段的项目,配置一个主节点和多个从节点可以有效利用资源,而不是部署更多的主节点。

4. 配置实例

4.1、单主双从

非常适合读取较多,但对写入频率要求不高的场景。

例如,很多数据可以读,但修改数据的频率较低。

4.2、3 主 3 从

更适合需要高可用性的系统,能够处理更高的写负载并提供更强的故障恢复能力。

5. 选择配置

在选择主从节点配置时,可以考虑以下因素:

系统负载:

冗余需求:

成本和资源:

总结

3 主节点 + 3 从节点的配置是确保高可用性的最小标准配置。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。

(0)

您想发表意见!!点此发布评论

推荐阅读

Redis作为分布式锁的使用详解

05-14

nginx中常见日志分析命令合集

05-14

Nginx+keepalived配置的实现步骤

05-14

Nginx配置allow和deny指令的使用

05-12

在Nginx中实现基于IP的访问控制(IP黑白名单)的具体步骤

05-12

Redis+Caffeine如何构建高性能二级缓存

05-12

猜你喜欢

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论