首页 > 编程知识 正文

mysql主从同步原理简单易懂,redis集群主从切换原理

时间:2023-05-03 22:11:43 阅读:147466 作者:4477

从属服务器向主服务器发出SYNC指令,主服务器收到此指令后,调用BGSAVE指令,创建专门用于数据持久化的子进程。 也就是说,将主服务器的数据写入RDB文件。 在数据持久化期间,主服务执行的所有写入指令都将缓存在内存中。

BGSAVE命令执行完成后,主服务器将永久RDB文件发送到从属服务器,从从属服务器接收到此文件后,将其保存到磁盘并读取到内存中。 此操作完成后,主服务将以redis协议的形式向从服务发送在此时间缓存的写命令。

也就是说,即使同时从多个服务器发送SYNC命令,主服务器也只运行一次BGSAVE,并将持久化的RDB文件发送到多个下游。 在redis 2.8之前的版本中,如果从服务器和主服务器由于某种原因断开,则主从服务器之间的数据已完全同步。 从2.8版开始,redis支持更高效的增量同步策略,大大降低了断开连接的恢复成本。

主服务在内存中存储要发送到从服务的内容的缓冲区。 从属服务器与主服务器发生网络瞬间断开后,从属服务器再次尝试与主服务器连接。 连接成功后,从服务器发送“要同步的主服务器ID”和“要请求的数据的偏移位置(复制偏移)”。 当主服务器接收到这样的同步请求时,它首先验证主服务器ID是否与它的ID匹配,然后检查它的缓冲区中是否存在“请求偏移位置”,如果两者都满足,则主服务器将返回次服务器

增量同步功能需要服务器端支持新的PSYNC指令。 此命令仅在redis-2.8之后。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。