【怒怼大厂面试官】精通Redis?主从数据同步懂吗

  • 👉以贴近现实的【面试官面试】形式帮助你系统学习后端技术
  • 📚本期是《Redis系列》,其他系列博客请订阅专栏《后端训练营》
  • ❤创作不易,不妨点赞、收藏、关注支持一下
  • 🔥博客内容持续产出以下系列
    • 《Redis系列》
    • 《MySQL系列》
    • 《Kafka系列》
    • 《ZooKeeper系列》
    • 《多线程系列》
    • 《JVM系列》

alt

文章目录

  1. Redis数据同步过程
    1. 命令传播的作用
    2. 部分重同步
  2. 复制偏移量记录同步状态
  3. 服务器运行ID
  4. Redis心跳检测

1. Redis数据同步过程

面试官:我看你们项目用的Redis主从,数据同步了解吗?

嗯嗯了解的。数据同步主要是利用了RDB文件来进行数据同步。

  1. 首先,从服务器会先向主服务器发送SYNC命令
  2. 收到命令后,主服务器会执行BGSAVE命令来生成一个RDB文件,并使用AOF缓冲区来记录在生成期间执行的写命令
  3. 完成第二步后,主服务器会将RDB文件发送给从服务器,让从服务器同步RDB文件数据
  4. 当然这还没完,主服务器的AOF缓冲区还会发送给从服务器,让它们之间的数据同步至最终状态

alt


面试官思考中…


1.1 命令传播的作用

面试官:按你这么说,数据同步后主服务器某个键删除了,数据又不同步了怎么办?

噢噢好的。是这样的,Redis有一个叫命令传播的概念。

如果像面试官说的这种场景,再使用上面我提到的AOF缓冲区就有点浪费内存空间了。所以Redis会将主服务器的这条Del删除命令,发送给从服务器

当从服务执行命令后,数据也就同步了。


面试官思考中…


1.2 部分重同步

面试官:如果主从服务器断线呢?还是用的RDB来同步吗?

不是的面试官。用的RDB来数据同步太消耗资源了,比如像CPU、内存、磁盘IO消耗。

如果是短时间断线,根本没有必要使用这么浪费资源的笨方法…

Redis它其实有一个叫,主从服务器断线后,从服务器会发送一个PS

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

Java Offer训练营 文章被收录于专栏

👉以贴近现实的【面试官面试】形式帮助你系统学习后端技术 👉成体系知识帮你在后端进阶,每一道问答助你怒怼大厂面试官,收获大厂offer 👉《Java Offer训练营》包含Redis系列、MySQL系列、Kafka系列、ZooKeeper系列、JVM系列、多线程系列等等 👉制作不易,各位的支持是我创作的最大动力

全部评论
666
点赞 回复
分享
发布于 04-20 21:48 广东

相关推荐

2 6 评论
分享
牛客网
牛客企业服务