【Redis】Redis同步(主从复制)

来源:互联网 发布:市场营销实训软件 编辑:程序博客网 时间:2024/06/07 13:37

一、主从概述:

      Redis支持Master--Slave(主从)模式,Redis  Server可以设置为另外一个Redis Server的主机(从机),从机定期从主机拿数据。特殊的,一个从机同样可以设置为一个Redis Server的主机,这样一来Master-Slave的分布看起来就是一个DAG图,如此形成Redis Server集群,无论是主机还是从机都是Redis Server,都可以提供服务。


二、主从复制目的:

      主从服务器的设置使得稳健性得以提升,如果主服务器发生故障,可以把本来作为备份的从服务器提升为主服务器。在主从服务器上分开处理用户的请求,读的话,可以直接读取备机数据,可获得更短的响应时间。用从服务器做数据备份而不会占用主服务器的系统资源。


三、如何配置Redis主从复制:

        1、同步启动两个Redis服务器,可以考虑在同一台机器上启动两个Redis服务器,分别监听不同的端口,如6379(master)和6378(slave)。

        2、在Slave服务器上执行一个指令:


四、Redis复制的特性:

       1、一个Master可以有多个Slaves。

       2、Slaves能过接口其他slave的链接,除了可以接受同一个master下面的slaves的链接以外,还可以接受同一个结构图中的其他slaves的链接。

       3、redis复制是在master端是非阻塞的,这就意味着master在同一个或多个slave端执行同步的时候还可以接受查询。


五、主从数据同步机制概述:

        Redis主从同步有两种方式:全同步和部分同步。

        主从刚刚连接的时候,进行全同步;全同步结束后,进行部分同步。当然,如果有需要,Slave在任何时候都可以发起全同步。Redis策略是,无论如何,首先会尝试进行部分同步,如不成功,要求从机进行全同步,并启动BGSAVE...........BGSAVE结束后,传输RDB文件;如果成功,允许从机进行部分同步,并传输积压空间中的数据。


六、全同步:

        接着自动发起PSYNC请求Master进行全同步。无论如何,Redis首先会尝试部分同步,如果失败才会尝试全同步。而刚刚建立连接的Master---Slave需要全同步。

        从机连接主机后,会主动发起PSYNC命令,从机会提供master_runid和offset,主机验证master_runid和offset是否有效?master_runid相当于主机身份验证码,用来验证从机上一次连接的主机,offset是全局积压空间数据的偏移量。验证未通过则进行全同步:主机返回+FULLRESYNC master_runid offset(从机接受并记录master_runid和offset,并准备接受RDB文件)接着启动BGSAVE生成RDB文件,BGSAVE结束后,向从机传输,从而全同步。




         

0 0
原创粉丝点击