简单易懂的redis集群

众所周知,redis有三种集群模式,主从复制/哨兵模式/分片集群。其中哨兵模式就是用来弥补主从复制的不足的,基于主从复制。

那我们先从主从复制讲起:

主从复制:

从节点给主节点发送一个slaveof的命令,连接到主节点;

然后从节点发送SYNC命令给主节点,主节点接收到该命令之后生成数据快照,并缓存命令;

主服务器发送数据快照,发完之后主服务器发送缓存的写命令,从节点删掉旧有数据,开始加载数据快照,加载完成之后写入主节点发来的缓存的命令,主从同步完成;

注意上面提到了,已经完成了全量复制和增量复制,后面都是增量。

之后,主服务器每执行一次写命令,就会将这个命令发送给所有的从服务器。从服务器在接收到写命令后,会执行这个命令,以确保其数据始终与主服务器的数据保持一致。

好处:

实现读写分离,提高性能。

缺点:

主节点故障的时候不能自动切换从节点为主节点。

还有一个它并不是强一致性的,主从之间有段时间数据不一致。

哨兵模式:

这个就是在主冲复制的基础上加个故障转移!

哨兵模式下,除了主节点和从节点,还有一个或多个哨兵节点(Sentinel)。哨兵节点的主要任务是监控主节点和从节点的运行状态,并在主节点发生故障时,自动将从节点提升为主节点。

c2b3b01abd9444e08fd26c1da52f150d.png

 在哨兵模式下,哨兵节点会定期检查主节点和从节点的运行状态。如果发现主节点发生故障,哨兵节点会在从节点中选举出一个新的主节点,并通知其他的从节点和哨兵节点。此外,哨兵节点还可以接收客户端的查询请求,返回当前的主节点信息,从而实现客户端的透明切换。

缺点: 

哨兵节点需要额外的资源和维护,增加了系统的复杂性;

主节点发生故障后,新的主节点可能会有一段时间的数据不一致,影响数据的准确性

分片集群:

Redis的集群模式是一种分布式的解决方案,它允许多个Redis节点(服务器)协同工作,提供更高的性能和可用性。在这种模式下,数据被分片存储在多个节点上,每个节点负责一部分数据的读写。

整个空间被分为16384个哈希槽,每个节点负责一部分哈希槽,当一个键值需要存储的时候,计算出这个键的哈希值,然后根哈希值值放到对应的槽上。

4a1d6d8b321342228be8356e2422569c.png

 总结来说:

主从复制最简单,适合对一致性要求不高,数据量不大的场景。

哨兵模式可以保证高可用性,虽然选举出的从节点可能存在不一致,但是高可用。

如果你的应用场景数据量大,需要高性能和高可用性,那么集群模式可能是最好的选择。集群模式可以提供更高的性能,更大的存储容量,以及更好的故障容忍能力。

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值