Redis的复制(Master/Slave)、主从复制、读写分离

1、什么是Redis的复制

  行话:也就是我们所说的主从复制,主数据更新后根据配置和策略自动同步到备用机的master/slave机制,Mater以写为主,slave以读为主。

2、能干什么

  2.1、读写分离

  2.2、容灾恢复

3、怎么用

  3.1、配从(库)不配主(库)

  3.2、从库配置:slave     主库IP     主库端口

  3.3、修改配置文件细节操作

  3.4常用三招

    3.4.1、一主二仆

      1、init

      2、一个Master两个Slave

      3、日志查看

      4、主从问题演示

    3.4.2、薪火相传

      上一个slaver可以是下一个slaver的Master,Slaver同样可以接收其他Slaver的链接和同步请求,那么该Slaver作为同一个链上的下一个Slaver的master,可以减轻Master的写压力。

  注意:中途转向会清除之前的数据,重新建立拷贝最新的

    中间的从机,总体上来说还是从机

    3.4.3、反客为主

4、实现过程

一主二仆:

  1、创建三个主机、每个都初始化

127.0.0.1:6381> 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
127.0.0.1:6381> 

  2、主机6379设值

127.0.0.1:6380> set k1 v1
OK
127.0.0.1:6380> set k2 v2
OK
127.0.0.1:6380> set k3 v3
OK

  3、从机备份

127.0.0.1:6379> slaveof 127.0.0.1 6379
OK

  4、直接获取值(后面插入的也可以直接获取)

127.0.0.1:6380> get k1
"v1"

 薪火相传:

  主机

127.0.0.1:6379> set k9 v9
OK

  从机

127.0.0.1:6380> get k9
"v9"

  从机的从机

127.0.0.1:6380> get k9
"v9"

反客为主:

  1、让主机死掉

  2、从机变为主机

127.0.0.1:6380> slaveof no one
OK
127.0.0.1:6380> info replication
# Replication
role:master
connected_slaves:0
master_repl_offset:907
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:2
repl_backlog_histlen:906
127.0.0.1:6380> 
127.0.0.1:6380> keys *
1) "k1"
2) "k9"
127.0.0.1:6380> set k10 v10
OK

  3、从机转换原来的主机

127.0.0.1:6381> SLAVEOF 127.0.0.1 6380
OK
127.0.0.1:6381> get k10
"v10"

 

注意:注意死了,从机还是从机,从机原地待命。从机死了,从机活过来,他就是主机了,需要重新建立关系。除非你在配置进redis.conf文件

posted @ 2019-07-31 23:38  编程小白1024  阅读(721)  评论(0编辑  收藏  举报