redis(3)主从复制

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/a944750471/article/details/80717930

先说下环境,两台服务器,一台服务器上面启动一个master,另一台上面启动两个slave端口号分别为6379和6380(没那么多服务器!)。

master配置:关闭rdb(备份工作让slave去做),开启aof

slave配置:slave开启rdb,aof都关闭

三台redis的slave-read-only都用默认的,当redis作为slave的时候只能读不能写

slave-read-only yes

1、首先修改master配置(“#”为注释)

    1)、让master后台运行

    daemonize yes

    2)、让外网可访问

    #bind 127.0.0.1

    protected-mode no

    3)、关闭rdb、开启aof

    appendonly yes

    #save 900 1

    #save 300 10

    #save 60 10000

2、修改第一台slave配置

    1)、后台运行

    2)、外网可访问

    3)、开启rdb、关闭aof

    appendonly no

    save 900 1

    save 300 10

    save 60 10000

    4)、配置成从服务器

    slaveof 47.101.32.189 6379

3、复制出第二台slave

    楼主这里并不是只复制了配置文件,直接把整个安装后的redis文件夹都复制了。

    如果是在安装好后的redis目录内直接复制的配置文件,那么需要改动复制出来的配置文件的以下配置

    下面两种颜色的配置选择性的改一种或者都改

    dir ./(不能相同)

    dbfilename dump.rdb(不能相同)

    appendfilename "appendonly.aof"(不能相同)


    然后无论是只复制了配置文件还是复制了整个文件夹,都需要做以下更改(这里表示不确定!!!)

    pidfile /var/run/redis_6379.pid(不能相同)第二台slave改成了pidfile /var/run/redis_6380.pid

    1)、修改端口

    port 6380

    2)、后台运行

    3)、外网可访问

    4)、开启rdb、关闭aof

    5)、配置成从服务器

4、依次启动master和slave

启动完成依次连接后输入info replication查看情况

master


    slave(6379)


slave2(6380)


5、测试

master


slave(6379)


slave(6380)


slave不可写



关于设置连接密码的在下一篇文章有讲到

有不正确的地方还望指出!


补充一点点小细节:

1、这里我们关闭了master的rdb,按理说是不会生成有dump.rdb文件的。

每当有slave连接master的时候,master和slave都会生成一份dump.rdb文件。

2、如果把某台slave的slave-read-only设置成no(从服务器可写),会导致只有该slave可以读取到写进去的数据,其他slave和master均服务读取到该salve写的数据。将该slave停止后,重启,该slave的数据会再次和master的数据同步。(所以说在弄主从复制的时候用默认的slave-read-only选项 yes)

3、如果将master的dump.rdb文件和 appendonly.aof文件都删除了并且重启master,master的数据将被清空,slave连接master后数据也会被清空

猜你喜欢

转载自blog.csdn.net/a944750471/article/details/80717930
今日推荐