请记住胡广一句话,所有的中间件所有的框架都是建立在基础之上,数据结构,计算机网络,计算机原理大伙一定得看透!!~
1. Redis数据同步
1.1 数据同步过程
大家有没想过为什么Redis多机要进行数据同步?不会是MySQL主从架构要数据同步,Redis就照猫画虎吧。
虽然这两者有关系型数据库和非关系型数据库的差异,但都是作为存储数据的数据库系统。而主从架构的目的就在于对数据有多个"备份",有了多个"备份",就自然而然衍生出众多好处。如负载均衡、灾难恢复、数据备份。
既然要"备份",那数据同步就必不可少了。Redis主从数据同步大致的过程如下。
- 首先,从服务器会先向主服务器发送SYNC命令。
- 收到命令后,Redis主服务器会执行BGSAVE命令来生成一个RDB文件,并使用AOF缓冲区来记录在生成期间执行的写命令。关于BGSAVE命令和SAVE命令的区别,大家可以往前阅读我写的Redis系列文章。
- 完成第二步后,主服务器会将RDB文件发送给从服务器,让从服务器同步RDB文件数据。
- 当然这还没完,在生成RDB文件的过程中,仍然会有其他写命令到达服务器。Redis主服务器的AOF缓冲区会继续发送给从服务器,让它们之间的数据同步至最终状态。
1.2 命令传播
有了AOF缓冲区的概念还没完,Redis主从复制还有一个命令传播的概念等着你去学。
从服务器使用SYNC