• Redis的主从复制


    Redis的主从复制

    主从复制

    主机数据更新后根据配置和策略,自动同步到从机的master/slave机制,Master以写为主,Slave以读为主。

    一主二从

    一主二从原理

    1、配从(库)不配主(库)
    2、配从(库): slaveof 主库IP 主库端口
    3、主写从读、读写分离
    4、从连前后同
    5、主断从待命、从断重新连

    一主二从搭建

    1、一台服务器模拟三台主机:
    第一步:将redis.conf 拷贝三份,名字分别是,redis6379.conf,redis6380.conf,redis6381.conf
    第二步:修改三个文件的port端口,pid文件名,日志文件名,rdb文件名
    如:
    port 6379
    pidfile /var/run/redis_6379.pid
    logfile “6379.log”
    dbfilename dump6379.rdb
    第三步:分别打开三个窗口模拟三台服务器,开启redis服务。

    2、查询主从信息:info replication

    3、写操作6379:

    4、设置主从关系:
    在6380和6381主机上分别执行命令:slaveof 127.0.0.1 6379

    另一种方式,就是修改6380和6381的配置文件,在最后加上:

    注意:如果主redis设置了密码,从库的redis.conf中还需要设置masterauth为主redis的密码。
    5、全量复制:在6380和6381分别执行命令get k1

    6、增量复制:6379执行命令:set k2 v2。然后6380端口和6381端口,分别执行命令:get k2

    7、主写从读、读写分离:在6380和6381上执行写操作set k3 v3

    8、主机宕机:6379执行指令shutdown,并查看6380和6381的redis信息

    从机原地待命。
    9、主机宕机后恢复:重启6379,并且执行写命令set k4 v4;6380和6381上分别执行get k4

    主机重启后,一切正常。
    10、从机宕机:6380执行指令shutdown,并查看6379和6381的redis信息

    11、从机宕机后恢复:重启6380,并查看6380、6379和6381的redis信息

    注意:从机跟master断开联系,必须重新连接,除非写进配置文件。
    12、从机恢复连主机前,主机写操作:6379执行写命令set k5 v5,6380和6381分别执行命令get k5

    13、从机恢复连接主机,6380执行命令:slaveof 127.0.0.1 6379,并且执行命令:get k5

    14、从机上位:
    第一步:主机宕机,6379执行命令:shutdown

    第二步:6380断开主从关系,执行命令:SLAVEOF no one

    第三步:重新搭建主从,6381执行命令:info replication,SLAVEOF 127.0.0.1 6380

    第四步:之前主机恢复,重启6379的Redis服务,并执行命令:info replication

    在6379主机宕机后,6380从机断开主从关系,6381开始还在原地待命;后来6380从机上位,6381投靠6380,6379主机即使回来但它已是孤寡老人,空头司令。
    15、天堂变地狱:6379执行命令saveof 127.0.0.1 6381,并在6379和6381执行info replication

    一台主机配多台从机,一台从机再配多台从机,从而实现了庞大的集群架构。同时也减轻了一台主机的压力,缺点是增加了服务器间的延迟。

    复制原理

    全量复制

    slave启动成功连接到master后会发送一个sync命令;Master接到命令启动后台的存盘进程,同时收集所有接收到的用于修改数据集命令,在后台进程执行完毕之后,master将传送整个数据文件到slave,以完成一次完全同步;slave服务在接收到数据库文件数据后,将其存盘并加载到内存中。
    只要是重新连接master,一次完全同步(全量复制)将被自动执行。

    增量复制

    Master将新的所有收集到的修改命令依次传给slave,完成同步。
    在这里插入图片描述
    在这里插入图片描述

  • 相关阅读:
    记忆化搜索 day48
    Android Camera性能分析 - 第18讲 预览Buffer Path详解
    计算机毕设 SpringBoot+Vue校园网课管理系统 网上选课系统 疫情网课管理系统Java Vue MySQL数据库 远程调试 代码讲解
    Worthington细胞色素 C 消化研究丨羧肽酶 B方案
    【Pytorch】Yolov5中CPU转GPU过程报错完善留档归纳
    二分查找法解题思路
    从零开始! jupyter notebook的安装教程
    《探索Stable Diffusion:AI绘画的创意之路与实战秘籍》
    公路施工机械技术突破和创新后的实施影响
    Framework 到底该怎么学习?
  • 原文地址:https://blog.csdn.net/neuzhangno/article/details/126276419