Redis教程

Redis-3.0.503 主从复制以及哨兵模式-15

本文主要是介绍Redis-3.0.503 主从复制以及哨兵模式-15,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

1.什么是主从复制?

    主机数据更新后根据配置和策略, 自动同步到备机的 master/slaver 机制,Master 以写为主,Slave 以读为主,主从复制节点间数据是全量的。

    具有读写分离,性能扩展、降低服务器压力,并且当从服务器出现问题,有容灾快速恢复的能力。

    为了解决主服务器玩一次出现问题,可以利用集群来解决,一个集群就是一主多从的服务器。



    * 当从服务器挂掉重新启动后,就会变成主服务器,需要重新通过命令变成从服务器,并且获取到主服务器中的全部数据。

    * 如果是主服务器挂掉了,它的从服务依旧是该主服务器的小弟,不会改变,当主服务器重新启动后,依旧是主服务器。


2.主从复制原理是什么?

    1. 当从服务器连接上主服务器时,从服务器会主动向主服务器发送数据同步的消息。
   (Slave 启动成功连接到 master 后会发送一个 sync 命令;)

    2. 主服务器送到从服务器发来的同步消息,就会把主服务器的数据进行持久化,生成rdb文件,将rdb文件发送给从服务器,从服务器收到后进行读取。
      (Master 接到命令启动后台的存盘进程,同时收集所有接收到的用于修改数据集命令,在后台进程执行完毕之后,master 将传送整个数据文件到 slave,以完成一次完全同步。)

    3. 当主服务器中有写操作后,主服务器会主动的向从服务器完成数据同步。


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

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

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


3.什么是薪火相传?

      薪火相传指上一个slave可以是下一个slave的Master,slave同样也可以接受其他slave的连接和同步请求,那么该slave作为了链条中下一个Master,可以有效减轻Master的写压力,去中心化。

     用slaveof 中途变更转向:会清除之前的数据,重新建立拷贝最新的,风险是—旦某个slave宕机,后面的slave都没法备份,主机挂了,从机还是从机,无法写数据了。


4.什么是反客为主?

      当主服务器挂掉后,从服务器可以通过手敲命令 slaveof no one 晋升成主服务器


5.什么是哨兵模式?

      哨兵模式是反客为主的自动版本,能够后台监控主机是否发生故障,如果发生故障会根据投票数来选择将某个从服务晋升成主服务器。


复制延时

      由于所有的写操作都是先在 Master 上操作,然后同步更新到 Slave 上,所以从 Master 同步到 Slave 机器有一定的延迟,当系统很繁忙的时

候,延迟问题会更加严重,Slave 机器数量的增加也会使这个问题更加严重。

故障恢复

优先级在redis-config中设置(不同版本的属性名可能会有一些区别)

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

  • 偏移量:指获得原主机数据的同步值,谁获得原数据量越多就优先选谁。

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

这篇关于Redis-3.0.503 主从复制以及哨兵模式-15的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!