1.7(redis)主从复制

本文详细介绍了Redis的主从复制机制,包括读写分离、容灾恢复和集群构建。通过配置多个Redis实例,实现主机数据更新后自动同步到备机。在主从模式下,当主机宕机,可以从机中选择一个切换为主机。哨兵模式进一步自动化这一过程,通过监控主机状态,自动将从机提升为主机,确保高可用性。此外,讨论了主从复制的全量与增量同步原理,以及如何在主机宕机后手动或自动转换从机为主机。
摘要由CSDN通过智能技术生成

主从复制

主机数据更新后根据配置和策略, 自动同步到备机的master/slaver机制

Master以写为主,Slave以读为主

在这里插入图片描述

作用

读写分离,性能扩展

容灾快速恢复

在从机出现宕机,可以切换到其他的从机中操作

注意:主机只能存在一台,从机可以存在多台

为什么

因为好比多个员工只有一个老板

如果主机与从机多对多。那么从机不知道跟随哪一个主机为主

如果主机出现异常怎么办。

我们以主从为搭建一个集群

操作

我们前面在启动redis的时候都会去指定配置文件。

所以我们只要在需要3个配置文件。表示启动不同的redis。

可以启动多个Linux。也可以启动一个Linux。**一个Linux 修改端口 **来表示不同的redis

  1. 拷贝多个redis.conf文件include(写绝对路径)
  2. 开启daemonize yes(关闭AOF)
  3. Pid文件名字pidfile
  4. 指定端口port
  5. Log文件名字
  6. dump.rdb名字dbfilename
  7. Appendonly 关掉或者换名字

关闭AOF

在这里插入图片描述

创建三个文件

用于启动得时候指定。

三个 文件内容类似

#表示引入该文件
include /usr/src/redis.conf
#表示指定得pid文件
pidfile /var/run/redis_6379.pid
#表示指定端口
port 6379
#表示指定RDB文件
dbfilename dump6379.rdb

在这里插入图片描述

在这里插入图片描述

分别进行启动三个redis

这里我使用远程连接同一个Linux。开启三个远程连接进行展示效果

在这里插入图片描述

此时得三个redis都是独立得,

也可以说都是主机

在这里插入图片描述

查看redis得信息

进入准确得redis客户端。然后使用

查看信息

info replication

在这里插入图片描述

从机指定主机

从机客户端指定主机。即可开启主从

slaveof 127.0.0.1 6379

在这里插入图片描述

查看主机和从机信息

主机

在这里插入图片描述

从机

在这里插入图片描述

再次天机从机也是一样得操作

  1. 每次得写操作都是用主机。
  2. 每次得读操作都是用从机
  3. 从机不能去使用写操作

一主两仆

表示一个主机多个从机

如果一个从机中途宕机。

宕机期间,主机又添加了很多操作。

从机也会存在添加的数据

注意

在重启从机的时候,要看看是否还是从机

主服务器宕机

从服务还是从服务器。

会等待主服务器启动之后。在做操作

原理

l Slave启动成功连接到master后会发送一个sync命令

l Master接到命令启动后台的存盘进程,同时收集所有接收到的用于修改数据集命令, 在后台进程执行完毕之后,master将传送整个数据文件到slave,以完成一次完全同步

l 全量复制:而slave服务在接收到数据库文件数据后,将其存盘并加载到内存中。

l 增量复制:Master继续将新的所有收集到的修改命令依次传给slave,完成同步

l 但是只要是重新连接master,一次完全同步(全量复制)将被自动执行

在这里插入图片描述

薪火相传

当一个主机向多个从机进行数据同步,从机过多情况。对于主机不太友好

可以通过

上一个Slave可以是下一个slave的Master,Slave同样可以接收其他 slaves的连接和同步请求,那么该slave作为了链条中下一个的master, 可以有效减轻master的写压力,去中心化降低风险。

在这里插入图片描述

用 slaveof

中途变更转向:会清除之前的数据,重新建立拷贝最新的

风险是一旦某个slave宕机,后面的slave都没法备份

主机挂了,从机还是从机,无法写数据了

在这里插入图片描述

反客为主

为了在主服务宕机之后还能进行写操作的时候

主服务器宕机。选择一个从服务器代替宕机的主服务器

当一个master宕机后,后面的slave可以立刻升为master,其后面的slave不用做任何修改。

slaveof no one

将从机变为主机。

在这里插入图片描述

这种方式。是在主机宕机之后。

手动的将从机转换为主机

下面会介绍哨兵模式。动态的进行转换

哨兵模式

反客为主的自动版,能够后台监控主机是否故障,如果故障了根据投票数自动将从库转换为主库

在这里插入图片描述

创见sentinel.conf文件

名字指定是这个

其中mymaster为监控对象起的服务器名称, 1 为至少有多少个哨兵同意迁移的数量。

sentinel monitor mymaster 127.0.0.1 6379 1

在这里插入图片描述

在这里插入图片描述

启动哨兵

在这里插入图片描述

当主机挂掉后会进行找到从机进行转换为主机

此时哨兵进行选择

在这里插入图片描述

最终结果

在这里插入图片描述

发现多个从服务器,之间进行比较。选择一个从服务器进行转换主

当主服务器重启后。主服务器就会变成从服务器进行操作

选举规则

在这里插入图片描述

优先级在redis.conf中默认:slave-priority 100,值越小优先级越高

偏移量是指获得原主机数据最全的

每个redis实例启动后都会随机生成一个40位的runid

配置文件修改

复制延迟

在我们哨兵进行选择从服务器的时候是需要一段时间的。

这段时间。不可以进行操作。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值