Redis的主从复制

概念:

主从复制是指,将一台redis服务器的数据,复制到其他的redis的服务器,前者被称为主节点(master/leader),后者称为从节点(slave/follower);数据的服务都是单向的,只能由主节点到从节点,Master以写为主,slave以读为主.

默认情况下,每台redis服务器都是主节点;且一个主节点可以有多个从节点或者没有,但一个从节点只能有一个主节点.


主从复制的作用主要包括:

1.数据冗余:主从复制实现了数据的热备份,是持久化之外的一种数据冗余方式.

2.故障恢复:当主节点出现问题时,从节点可以提供服务,实现快速的故障修复,实际上是一种服务冗余

3.负载均衡:在主从复制的基础上,配合读写分离,可以由主节点提供写的服务,从节点提供读的服务,分担服务器压力,尤其是在读多写少的场景下,通过多个节点分担读的负载,可以提高并发量

4.高可用的基石:主从复制是哨兵和集群能够实施的基础,因此说主从复制是redis高可用的基础.

一般情况下,redis运用的工程中,redis都是多台,原因有几个:

1.从机构上看,单个redis容易出现单点故障,一台服务器处理所有的业务请求负载大,压力较大

2.从容量上看,单个redis服务器内存容量有限,就算是一台Redis服务器设置成256G,也不能将所有内存用作于redis存储内存,一般会将redis的内存设置不超过20G.


环境配置:

只配置主库,不配置从库

单机多服务,复制多个配置文件,分别启动.

port 6381

daemonize yes  开启后台运行

pidfile /var/run/redis6381.pid

logfile "6381.log"

dbfilename dump6381.rdb

命令配置:

只配从机,在从机中舒服,slaveof  ip 端口号

 输入命令 info replication 

 配置成功,此时在主机中输入 info replication

 文件永久配置:


复制原理:

Slave 启动成功后,链接到master后会发送一个sync同步命令

master接到命令后,启动后台的存盘进程,同事手机所有的接收到的用于修改数据的命令,在后台执行完毕后,master将传送整个数据文件到slave,并完成一次完全同步.

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

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

只要从新链接,一定会执行一次全量复制.


哨兵模式:

在没有哨兵的情况下:

主机负责写,从机只能读,写的时候报错

如果主机宕机了,从机不发生变化,仍然能读,如果主机又回来了,从机可以获取主机写的信息

如果从机断了,如果没有配置到配置文件中,那么重启后不能自动链接到主机上.就不能获取主机的数据

如果主机断开链接可以使用 slaveof no one 命令,就可以变成主机,然后手动将其他从机的主机改成这个主机

有哨兵模式:

主从切换技术的方法是:当主服务宕机后,需要手动把一台从服务器切换为主服务器,就需要人工干预费事费力,还会造成一段时间内服务不可用.因此我们优先选择哨兵模式.redis从2.8开始提供了Sentinel(哨兵)架构来解决这个问题.

能够后台监控主机是否故障,如果故障可根据投票数自动将从库转为主库.

哨兵模式是一种特殊的模式,哨兵是一个独立的进程,独立运行.其原理是哨兵通过发送命令,等待redis服务器响应,从而监控运行的多个redis实例.

多哨兵:

哨兵发送命令让redis服务器返回监控器运行状态,包括主服务器和从服务器.

当哨兵检测到master宕机,会自动将slave切换成master,然后通过发布订阅的模式通知其他服务器,修改配置文件切换主机.

然而一个哨兵可能会出问题,可以使用多个哨兵进行监控.各个哨兵之间还会进行监控,这样就形成了多哨兵模式.

假设主服务器宕机了,哨兵1先检测到这个结果,但是不会马上进行failover过程,仅仅是哨兵1主观认为主服务器不可用,这种现象呗称为主观下线.当后面的哨兵也检测到主服务器不可用,并且数量达到一定值时,那么哨兵之间进行一次投票.投票的结果由随机一个哨兵发起,进行faliover(故障转移)操作.切换成功后,就会通过发布订阅的模式,让各个哨兵把自己监控的从服务器实现切换主机,这个过程称为客观下线.

哨兵配置文件:

1.配置哨兵配置文件 sentinel.conf

sentinel monitor myredis 127.0.0.1 6379  1(代表主机挂了,slave投票看让谁接替主机,票数最多的成为主机)

哨兵的优点:

1.基于主从复制的配置的优点全有,

2.主从可以切换,故障可以转移,系统的可用性更好

3.哨兵模式就是主从复制的升级,

缺点:

1.redis不好在线扩容,集群容量一旦达到上限,在线扩容就十分烦恼

2.实现哨兵模式的配置很麻烦的,里面有很多选择

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值