0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

什么是Redis主从复制

麦辣鸡腿堡 来源:七哥聊编程 作者:七哥聊编程 2023-10-09 15:09 次阅读

Redis主从复制

来自灵魂的拷问:什么是Redis主从复制?

简言之就是:

  • 主对外从对内,主可写从不可写
  • 主挂了,从不可为主

看下面的图加深下理解:

图片

对,你没看错,Redis主从复制没有动态选举Master节点的能力,主挂了服务就不可以写数据了。仅仅就是增强了应用读数据的并发量同时做数据备份。

一般生产环境会采用 哨兵 或者 Redis Cluster 这种具备Master自动选举的方案,我们学习时还是要掌握主从的原理后,再去更深一步,对于哨兵和Redis Cluster方案感兴趣的话,可以留言告诉我,咱们后面安排上。

主从如何配置

接下来,我们实战一下redis的主从架构配置:

  • 主redis无需任何配置
  • 从机需要修改redis.conf文件中如下配置项
port 6378  # 如果是使用的一台机器注意端口要与主机不同
# slaveof < masterip > < masterport >
# 表示当前【从服务器】对应的【主服务器】的IP是192.168.10.135,端口是6379。
slaveof 192.168.137.6 6379

卧槽,你是不是想问:这么简单么?没错就是这么无情,但是这种事情一般代码越少,事情越大,实现原理是啥呀?怎么就可以主从复制了呢?

别慌,七哥,带大家好好缕一缕,整完去应付面试绝对是没有问题的。

实现原理

Redis从2.8版本开始,使用PSYNC命令代替SYNC命令来执行复制时的同步操作。因此本文只讲解目前采用PSYNC的同步原理。

PSYNC命令具有完整同步(full resynchronization)部分同步 (partial resynchronization)两种模式:

  • 其中完整同步用于处理初次复制情况:完整重同步的执行步骤是通过让主服务器创建并发送RDB文件,以及向从服务器发送保存在缓冲区里面的写命令来进行同步;
  • 而部分同步则用于处理断线后重复制情况:当从服务器在断线后重新连接主服务器时,如果条件允许,主服务器可以将主从服务器连接断开期间执行的写命令发送给从服务器,从服务器只要接收并执行这些写命令,就可以将数据库更新至主服务器当前所处的状态。

下图展示了主从服务器在执行部分重同步时的通信过程:

图片

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 数据
    +关注

    关注

    8

    文章

    6512

    浏览量

    87609
  • 数据库
    +关注

    关注

    7

    文章

    3591

    浏览量

    63374
  • 架构
    +关注

    关注

    1

    文章

    484

    浏览量

    25200
  • Redis
    +关注

    关注

    0

    文章

    362

    浏览量

    10496
收藏 人收藏

    评论

    相关推荐

    Redis主从复制的作用和步骤

    Redis青铜修炼手册(五) --- Redis主从复制
    发表于 06-27 07:20

    mysql的主从复制

    mysql 主从复制
    发表于 04-28 14:30

    基于mycat的Mysql主从复制读写分离全攻略

    基于mycat的Mysql主从复制读写分离全攻略
    发表于 09-08 10:10 4次下载
    基于mycat的Mysql<b class='flag-5'>主从复制</b>读写分离全攻略

    Redis主从复制以及主从复制原理

    如果发送 ping 命令后,从节点没有收到主节点的 pong 回复或者超时,比如网络超时或者主节点正在阻塞无法响应命令,从节点会断开复制连接,下次定时任务会发起重连。
    的头像 发表于 03-12 15:24 1.8w次阅读
    <b class='flag-5'>Redis</b><b class='flag-5'>主从复制</b>以及<b class='flag-5'>主从复制</b>原理

    详解Redis主从复制和哨兵机制

    Redis主从复制主要有两个角色,主机(master)对外提供读写功能,从机(slave)对外只提供读功能,主机定期把数据同步到从机上保证数据一致性。
    的头像 发表于 05-03 18:14 1790次阅读
    详解<b class='flag-5'>Redis</b><b class='flag-5'>主从复制</b>和哨兵机制

    一文深入Redis主从复制的原理详解

    运行 ID 的主要作用是用来识别 Redis 节点。如果使用 ip+port 的方式,那么如果主节点重启修改了 RDB/AOF 数据,从节点再基于偏移量进行复制将是不安全的。所以,当运行 id 变化后,从节点将进行全量复制。也就
    的头像 发表于 02-04 16:13 1752次阅读
    一文深入<b class='flag-5'>Redis</b><b class='flag-5'>主从复制</b>的原理详解

    利用MySQL进行一主一从的主从复制

    本文讲述了如何使用MyBatisPlus+ShardingSphereJDBC进行读写分离,以及利用MySQL进行一主一从的主从复制
    的头像 发表于 07-28 09:47 816次阅读

    谈谈Redis怎样配置实现主从复制

    之前总结过redis的持久化机制:深度剖析Redis持久化机制,持久化机制主要解决redis数据单机备份问题;redis的高可用需要考虑数据的多机备份,多机备份通过
    发表于 01-31 11:31 467次阅读

    MySQL主从复制原理详解

    简单讲,MySQL主从复制就是数据写入一台服务器(主服务器)后,同时还会额外写入另外的服务器(从服务器)。也就是说数据会写多份,这样做的目的主要有两个:
    的头像 发表于 02-06 10:27 853次阅读

    一个操作把MySQL主从复制整崩了

    最近公司某项目上反馈mysql主从复制失败,被运维部门记了一次大过,影响到了项目的验收推进,那么究竟是什么原因导致的呢?而主从复制的原理又是什么呢?本文就对排查分析的过程做一个记录。
    的头像 发表于 05-11 11:14 368次阅读
    一个操作把MySQL<b class='flag-5'>主从复制</b>整崩了

    聊聊RocketMQ的主从复制

    RocketMQ 主从复制是 RocketMQ 高可用机制之一,数据可以从主节点复制到一个或多个从节点。
    的头像 发表于 07-04 09:42 367次阅读
    聊聊RocketMQ的<b class='flag-5'>主从复制</b>

    mysql主从复制三种模式

    MySQL主从复制是一种常见的数据同步方式,它可以实现将一个数据库的更改同步到其他多个数据库的功能。主从复制可以提高数据库的可用性和性能,以及提供故障恢复和数据备份的支持。在MySQL中,有三种
    的头像 发表于 11-16 14:04 424次阅读

    mysql主从复制的原理

    MySQL主从复制是一种数据库复制技术,它允许将一个MySQL数据库的更新操作自动复制到其他MySQL数据库上的过程。主要通过MySQL的binlog(二进制日志)和relay log(中继日志
    的头像 发表于 11-16 14:18 273次阅读

    mysql主从复制 混合类型的复制

    MySQL主从复制是一种常用的数据复制技术,可以实现数据从一个MySQL服务器(主服务器)复制到另一个MySQL服务器(从服务器)。在主从复制中,混合类型的
    的头像 发表于 11-16 14:20 277次阅读

    redis查看主从节点命令

    Redis是一种开源的内存数据结构存储系统,常被用作数据库、缓存和消息中间件。在Redis中,可以通过一些命令来查看主从节点的信息,以便进行监控和管理。 Redis
    的头像 发表于 12-04 11:44 551次阅读