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文件
Redis的复制(Master/Slave)、主从复制、读写分离
原文:https://www.cnblogs.com/karrya/p/11279903.html