redis 主从切换 会造成业务中断吗-redis主从切换一致性(6-10-31)
更新时间:2024-08-31 分类:Redis 浏览量:3
Redis本文目录一览:
- 1、脑裂以及Redis主从同步中的坑
- 2、redis集群主数据都是一致的吗为什么?
- 3、Redis早期的主从架构原理分析,早期如何实现读写分离的?
- 4、redis主从结构,为什么原来的master无法成为slave并加入到主从中
脑裂以及Redis主从同步中的坑
所谓的脑裂,就是指在主从集群中,同时有两个主节点,它们都能接收写请求。而脑裂最直接的影响,就是客户端不知道应该往哪个主节点写入数据,结果就是不同的客户端会往不同的主节点上写入数据。
因为 master - slave的复制是异步 的(客户端发送给redis,主节点数据同步到内存中后就返回成功了) 所以可能有部分数据还没复制到slave,master就宕机了,此时master内存中的数据也没了,这些部分数据就丢失了。
redis的集群脑裂是指因为网络问题,导致redis master节点跟redis slave节点和sentinel集群处于不同的网络分区,此时因为sentinel集群无法感知到master的存在,所以将slave节点提升为master节点。
redis集群主数据都是一致的吗为什么?
1、主节点和从节点保存的数据是相同的,但是因为同步,从节点的数据会有一点延迟。但是主从模式的高可用会有问题。因为主节点挂了之后是没有自动选主机制的,需要人工干预来指定一个从节点作为主节点。
2、针对完整的重同步的缺陷,Redis提供了部分的重同步功能。
3、Redis 集群是通过在不同的节点之间分配数据来实现的。每个节点都有自己的数据子集,其中一些是主节点,而另一些是从节点。当需要更多存储空间或更多的处理能力时,可以通过向集群添加更多的节点来实现扩展。
4、传统的Redis集群采用的主从复制模式,一般为一主多从,主节点有读写权限,但是从节点只有读的权限。主节点会定期将数据同步到从节点中,保证数据一致性的问题。
5、会对响应 和 指令吞吐量有影响。Redis 提供 6 种内存淘汰机制:在 0 后增加了两种模式:有这样一种场景, 应用1 向主节点写数据,并且设置失效时间。
Redis早期的主从架构原理分析,早期如何实现读写分离的?
1、读写分离: 可以用于实现读写分离,主库写、从库读,读写分离不仅可以提高服务器的负载能力,同时可根据需求的变化,改变从库的数量。
2、主从复制可以将写操作集中在主节点,仅让从节点负责读取数据,从而实现读写分离,并提高Redis集群的性能。
3、利用主从复制,可以实现读写分离、数据备份等功能。但如果主库宕机后,需要运维人员手动地将一个从库提升为新主库,并将其他从库slaveof新主库,以此来实现故障恢复。
4、针对完整的重同步的缺陷,Redis提供了部分的重同步功能。
5、传统的Redis集群采用的主从复制模式,一般为一主多从,主节点有读写权限,但是从节点只有读的权限。主节点会定期将数据同步到从节点中,保证数据一致性的问题。
redis主从结构,为什么原来的master无法成为slave并加入到主从中
1、因集群中已有了新主节点,所以6381再启动只能作为从节点。
2、配置文件: 在从服务器的配置文件中加入 slaveofmasteripmasterport。启动命令: redis-server启动命令后加入 --slaveofmasteripmasterport。
3、redis 主从同步的过程始于一系列类似tcp三次握手的过程,归于sync/psync命令。分析redis主从同步master端的处理逻辑需要从syncCommand的函数开始进行分析。
4、redis.conf 文件中指定 slaveof master-ip master-port 即可。
5、由于是master2和slave2的数据都丢失了,集群无法重建。通过开发了解到,redis上都是缓存数据,丢失影响不大,于是删除本地持久化数据,重新部署redis node,再手动创建集群。三个节点都添加完成,并且没有报错。
6、故障转移 选举出的leader sentinel节点将负责故障转移,也就是进行master/slave节点的主从切换。