Redis主从架构
Redis主从架构
主从架构也成为 水平横向扩展,读写分离架构
主(master)从(slave)
读的操作都丢给slave,写丢给master
1.slave会先去Ping master ,告诉master,我已经连接上了,你可以给我分派任务了
2.master这时候就会把数据给到slave,让他去做处理(数据复制,这是全量的复制)
3.这个数据就是RDB,他会把最新的数据从内存中拿出来,把最新的RDB放在磁盘里,通过内网的传输,传输给slave
4.slave将传输过来的RDB下载到自己的磁盘中,然后再把RDB读取到自己的内存中
以上操作其实就是初始化的过程,把master的数据复制给slave
在这个之后,如果master有写的数据进来,那么就会把对应写进的数据再通过上面的流程(增量),最终slave把新写入的数据读到自己的内存中
这个同步数据的过程,并不会造成阻塞,因为master和slave会用老的数据去作为服务,当数据同步完成之后就会用新的数据去作服务,这样就可以数据同步了
如果slave宕机了一段时间,slave就缺少这段时间里的数据,当重新和master连接上之后,master会增量的把数据给到slave,这样就还是可以保持数据的同步
必须要开启master的持久化
必须要开启master的持久化
必须要开启master的持久化
如果没有开启,那么当master宕机之后,内存里的数据就不存在了,这样在给slave同步数据的时候,不会slave的数据清空,这时候后果就不堪设想了。
主从模式
一般情况下一主二从是用的最多的,如果一主N从,会造成内网宽带被占用太多,这样就不是太好了。
对于 一主N从的问题就可以用以上的方式去解决
这样就可以在第一层的压力分摊给第二层