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文件