1. Redis三种集群模式
Redis 提供的三种集群模式各有其特点和适用场景,以下是对这三种模式的简要概述:
-
主从模式(Master-Slave Replication):
-
在这种模式下,数据在主节点(Master)上进行写操作,然后异步复制到一个或多个从节点(Slave)。
-
主节点负责数据的持久化和写入操作,从节点则提供读操作,实现读写分离,提高系统的读取性能。
-
主从模式适合于数据量不是特别大,且对高可用性要求不是特别高的场景。
-
缺点是当主节点发生故障时,需要手动进行故障转移,这可能导致短暂的服务中断。
-
-
哨兵模式(Sentinel):
-
哨兵模式是主从模式的扩展,通过哨兵(Sentinel)进程来监控主节点的状态。
-
哨兵可以自动检测主节点的故障,并在主节点不可用时自动进行故障转移,将一个从节点提升为新的主节点。
-
哨兵模式提高了系统的可用性,但依然存在一定的局限性,比如哨兵本身也需要维护和监控。
-
适用于对高可用性有一定要求,但不需要水平扩展的场景。
-
-
去中心化模式(Cluster):
-
这是Redis的官方集群解决方案,采用去中心化架构,数据通过分片(sharding)分布在多个节点上。
-
每个节点都存储一部分数据(槽),并且节点之间可以相互通信,实现数据的自动迁移和负载均衡。
-
去中心化模式支持在线添加或移除节点,实现动态扩展。
-
集群中的每个节点都可以处理读写请求,并且具有自动故障转移和数据复制的能力,从而提供高可用性和容错性。
-
适合于需要水平扩展、高可用性和负载均衡的大型应用。
-
2. 为什么使用Redis集群
Redis集群之所以被广泛使用,主要是因为它提供了高可用性、扩展性、负载均衡、数据一致性、容错性等关键特性。通过在多个节点上分布式存储数据,Redis集群能够实现自动故障转移和负载均衡,从而提高系统的稳定性和响应速度。此外,Redis集群支持多种数据类型和灵活的部署方式,易于管理和集成,使其成为处理大规模数据和高并发访问的理想选择。
3. 主从模式
- redis主从模式表示一个主节点跟若干个从节点。
- 主节点可以负责写操作和读操作。
- 从节点只负责读操作。
- 主节点的数据会自动同步到所有的从节点上。
如何搭建redis主从模式
为了操作方便: 我在一台linux上跑三个redis服务器。 只要端口号不同即可。
开启三台redis服务
配置主从关系
思考:
发现主从模式的缺点: 不会自动选举master节点。导致一旦主节点宕机,无法进行写操作。
4. 哨兵模式
Redis的哨兵模式(Sentinel)是一种监控系统,用于实现主从复制架构中的高可用性。为了解决主从模式的缺陷: 当主节点宕机后,从节点无法直接上位。
准备条件
启动哨兵服务
当6380端口下线之后会在6381和6382之间选出一个主节点
5. 去中心化模式
去中心化模式,也称为Redis Cluster,是一种高度可扩展且具有高可用性的解决方案。
准备三主三从
启动redis
分配槽以及主从关系
命令行的客户端