您的位置:首页 > 数据库 > Redis

Redis之主从复制

2017-07-02 22:02 267 查看
1、配置从库不配置主库

2、从库配置命令:slaveof 主库ip 主库端口号

    ①每次与master断开后,都需要重新连接,除非在redis.conf里进行配置

    ②Info replication(命令)

未进行主从配置输入此命令,将显示以下内容

    #Replication

    role:master

    connected_slaves:0

    master_repl_offset:0

    repl_backlog_active:0

    repl_backlog_size:1048576

    repl_backlog_first_byte_offset:0

    repl_backlog_histlen:0

3、配置细节

    ①拷贝多个redis.conf文件

    ②开启daemonize yes

    ③pid文件名字

    ④指定端口

    ⑤log文件名

    ⑥dump.rdb

4、常用配置

    1)一台主机二台

    ①从机(79主,80,81从)

    79存值set k4 v4

    80,81输入slaveof 127.0.0.1 6379

    在80,81中可以get k4的值

    此时输入Info replication将得到主从的一些信息。

    ②从机不能写。

    ③主机宕机,从机原地待命,还是从机身份。

    ④主机恢复,自动恢复主从状态,无须操作。

    ⑤从机宕机,从机恢复就会变成master身份。(与master断开需要重连,或写进配置文件)

    2)主从复制的传递

    ①上一个slave可以是下一个slave的Master,Slave同样可以接收其他slaves的连接和同步请求,那么该slave作为链条中的下一个master,可以减轻master 的写压力。

    ②中途变更转向:会清楚之前的数据,重新建立拷贝最新的。

    3)从机转主机

    ①79主机,80,81从机,79宕机,让80变成主机(slaveof no one),81需要重新认主机(slaveof 127.0.0.1 6380),79恢复则跟80,81将无关系。

5、复制原理

    Slave启动成功连接到master后会发送一个sync命令。Master接到命令启动后台的存盘进程,同时收集所有接收到的用于修改数据集命令,在后台进程执行完毕之后,master将传送整个数据文件到slave,以完成一次完全同步。

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

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

    只要重新连接master,全量复制将被自动执行一次。

6、哨兵模式(主机宕机,在所有从机中自动投票选出新主机)

    ①79主机,80,81从机

    ②新建sentinel.conf文件,填写一下内容:(监控主机)

    sentinel monitor host6379(被监控数据库名称) 127.0.0.1 6379 1(1表示多余一票成为新master)

    ③启动哨兵:redis-sentinel sentinel.conf

    ④79宕机,会自动选举80或81为新的master

    ⑤79恢复后将变成slave。

    ⑥该文件sentinel.conf,可以添加多行,监控多个master

7、复制缺点

    复制延时
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: