首页 > 代码库 > redis主从同步原理

redis主从同步原理

redis主从:

作用:

     实现数据的实时备份,可用来实现redis的读写分离及redis高可用

主从同步原理:

     一主一从环境:

     环境:2台redis,一台master一台slave

     1,master等待命令进入

     2,slave连接master,发送一个sync命令

     3,master开始执行BESAVE,并使用缓冲区记录BESAVE之后所执行的所以写命令

     4,slave端如果现在有请求进来,可以根据配置项来决定是继续用当前数据做处理客户端的请求还是给客户端返回报错

     5,master BESAVE执行完之后,放slave发送快照文件,并在发送过程中还是用缓冲区来记录当前的写入命令

     6,slave丢弃旧数据(如果slave有数据的),开始载入master发过来的快照文件

     7,master 快照文件发送完毕,开始发送缓冲期里面的写入命令

     8,slave完成快照文件的解释操作之后,就像往常一样开始接受命令请求(客户端的请求)

     9,master缓冲区的命令发送完毕之后,从现在开始就会master没执行一个写操作,就向从服务器发送相同的命令

     10,slave 执行完master服务器发来的存储在缓冲区命令,并从现在开始接受并执行主服务器传来的每个写命令

     一主多从环境:

     环境:多个redis,一台master多个slave

     当新的slave连接master有2种状况

     1,所有slave同时连接master的时候(步骤5还没有执行)

        执行过程:所有的slave会接受到相同的快照文件和相同的缓冲区命令

     2,已经有slave连接master的时候(步骤5,6正在执行或已经执行完)

        执行过程:新加入的slave会重新执行上面的10个步骤


    需要注意的是,slave接受到master的快照文件会清空自己的数据文件,redis不支持双主

实施步骤:

    就是就redis同步搭建其实挺简单

    在slave的配置文件或者redis_cli远程终端上

    slaveof <masterip> <masterport>
    masterauth <master-password>#认证密钥

    

本文出自 “王小酸” 博客,转载请与作者联系!

redis主从同步原理