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

时间:2023-03-09 03:44:19
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:> info replication
# Replication
role:master
connected_slaves:
master_repl_offset:
repl_backlog_active:
repl_backlog_size:
repl_backlog_first_byte_offset:
repl_backlog_histlen:
127.0.0.1:>

  2、主机6379设值

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

  3、从机备份

127.0.0.1:> slaveof 127.0.0.1
OK

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

127.0.0.1:> get k1
"v1"

薪火相传:

  主机

127.0.0.1:> set k9 v9
OK

  从机

127.0.0.1:> get k9
"v9"

  从机的从机

127.0.0.1:> get k9
"v9"

反客为主:

  1、让主机死掉

  2、从机变为主机

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

  3、从机转换原来的主机

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

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