redis主从切换同步的简单介绍

脑裂以及Redis主从同步中的坑1、所谓的脑裂,就是指在主从集群中 , 同时有两个主节点,它们都能接收写请求 。而脑裂最直接的影响 , 就是客户端不知道应该往哪个主节点写入数据 , 结果就是不同的客户端会往不同的主节点上写入数据 。
2、因为 master - slave的复制是异步 的(客户端发送给redis,主节点数据同步到内存中后就返回成功了) 所以可能有部分数据还没复制到slave,master就宕机了,此时master内存中的数据也没了,这些部分数据就丢失了 。
3、redis集群没有过半机制会有脑裂问题,网络分区导致脑裂后多个主节点对外提供写服务 , 一旦网络分区恢复 , 会将其中一个主节点变为从节点,这时会有大量数据丢失 。
4、redis的集群脑裂是指因为网络问题,导致redis master节点跟redis slave节点和sentinel集群处于不同的网络分区,此时因为sentinel集群无法感知到master的存在,所以将slave节点提升为master节点 。
Redis主从复制与一致性1、Redis为复制积压缓冲区设置的默认大小为1MB,如果主服务器需要执行大量写命令,又或者主从服务器断线后重连接所需的时间比较,那么这个大小也许并不合适 。
2、主从复制,是指将一台Redis服务器的数据,复制到其他的Redis服务器 。前者称为主节点(master),后者称为从节点(slave),数据的复制是单向的,只能由主节点到从节点 。
3、主服务器通过向从服务器传播命令来更新从服务器的状态 , 保持主从服务器一致,而从服务器通过向主服务器发送命令来进行心跳检测,以及命令丢失检测 。
4、主节点会定期将数据同步到从节点中,保证数据一致性的问题 。这种集群方式在运行时存在一些问题:Redis的哨兵机制就是解决主从复制存在缺陷(选举问题) , 解决问题保证我们的Redis高可用,实现自动化故障发现与故障转移 。
5、redis的主从复制分为两个阶段: 1)同步操作:将从服务器的数据库状态更新至主服务器当前所处的数据库状态 。2)命令传播:在主服务器的数据库状态被修改,导致主从服务器的数据库状态出现不一致时 , 让主从服务器重新回到一致状态 。
6、· 具有主从模式的缺点,每台机器上的数据是一样的,内存的可用性较低 。· Redis 较难支持在线扩容,在集群容量达到上限时在线扩容会变得很复杂 。Redis 集群模式本身没有使用一致性 hash 算法 , 而是使用 slots 插槽 。
Redis集群模式1-主从复制+哨兵机制传统的Redis集群采用的主从复制模式,一般为一主多从,主节点有读写权限 , 但是从节点只有读的权限 。主节点会定期将数据同步到从节点中,保证数据一致性的问题 。
Redis 高可用的主要有三种模式: 主从模式,哨兵模式和集群模式 。Redis 提供了 Redis 提供了复制(replication)功能,当一台 redis 数据库中的数据发生了变化,这个变化会被自动地同步到其他的 redis 机器上去 。
因此,主从模式的一个缺点 , 就在于无法实现自动化地故障恢复。Redis后来引入了哨兵机制,哨兵机制大大提升了系统的高可用性 。哨兵,就是站岗放哨的,时刻监控周围的一举一动,在第一时间发现敌情并发出及时的警报 。
react配置redis有以下模式:主从模式,是最为简单的redis集群模式,主要工作模式是主从复制,主数据库可以执行读写功能 , 而从数据库只能执行读功能 。
redis主从+哨兵1、主(哨兵1):191611 从(哨兵2):191612 从(哨兵3):191613 线上redis master异常关机之后重启,发现redis哨兵模式下 三个节点都是slave,无法选择出主 。
2、因此, 主从模式的一个缺点,就在于无法实现自动化地故障恢复。Redis后来引入了哨兵机制,哨兵机制大大提升了系统的高可用性 。哨兵,就是站岗放哨的,时刻监控周围的一举一动,在第一时间发现敌情并发出及时的警报 。
3、主从模式指的是使用一个Redis实例作为主机 , 其余的实例作为备份机 。一般来说主节点负责写请求,从节点负责读请求,主节点异步的同步给从节点 。主节点和从节点保存的数据是相同的,但是因为同步,从节点的数据会有一点延迟 。
4、通过 pub/sub 机制 , 哨兵之间可以组成集群,同时,哨兵又通过 INFO 命令,获得了从库连接信息,也能和从库建立连接,并进行监控了 。
5、Redis 在 8 版本以后提供的 哨兵(***Sentinel***)机制,它的作用是实现 主从节点故障转移。它会监测主节点是否存活,如果发现主节点挂了,它就会选举一个从节点切换为主节点,并且把新主节点的相关信息通知给从节点和客户端 。
redis缓存原理1、redis缓存原理是sql语句时key值,查询结果resultSet是value,当同一个查询语句访问时(select * from t_product),只要曾经查询过,调用缓存直接返回resultSet,节省了数据库读取磁盘数据的时间 。
2、Redis是一种内存高速cache , 如果使用redis缓存,那经常被访问的内容会被缓存在内存中,需要使用的时候直接从内存调?。恢辣扔才痰魅】炝硕嗌俦叮?并且支持复杂的数据结构,应用于许多高并发的场景中 。
3、AOF 是以appendonly方式进行数据的储存的,开启AOF模式后 , 所有存进redis内存的数据都会进入os cache中,然后默认1秒执行一次fsync写入追加到appendonly.aof文件中 。
4、redis缓存其实就是把经常访问的数据放到redis里面,用户查询的时候先去redis查询,没有查到就执行sql语句查询 , 同时把数据同步到redis里面 。redis只做读操作,在内存中查询速度快 。
5、先读取nosql缓存层,没有数据再读取mysql层 , 并写入数据到nosql 。nosql层做好多节点分布式(一致性hash),以及节点失效后替代方案(多层hash寻找相邻替代节点),和数据震荡恢复了 。
玩转Redis的高可用(主从、哨兵、集群)Redis主从复制是指在一个Redis集群中,将一个Redis节点作为主节点,其余的Redis节点作为从节点 。主节点负责写入数据,从节点负责读取数据 。
Redis的哨兵机制就是解决主从复制存在缺陷(选举问题),解决问题保证我们的Redis高可用 , 实现自动化故障发现与故障转移 。要使用哨兵机制,除了启动Redis服务以外,还要启动哨兵服务来进行监控,会介绍详细步骤 。
redis高可用:如果你做主从架构部署,其实就是加上哨兵就可以了 , 就可以实现,任何一个实例宕机,自动会进行主备切换 。
哨兵模式就是在主从模式的基础上再加一个哨兵集群 。每个哨兵都会监控主节点和从节点的状态 。如果主节点挂了,就会从从节点中选出一个来作为主节点,以达到高可用的目的 。
【redis主从切换同步的简单介绍】redis哨兵和集群不能同时使用,Redis哨兵和集群是两种不同的Redis高可用方案 。

    推荐阅读