Redis主从配置(五)

Redis 支持简单且易用的主从复制(master-slave replication)功能,该功能可以让从服务器(slave server)成为主服务器(master server)的精确复制品。

1.1 主从同步原理

  • 无论是初次连接还是重新连接, 当建立一个从服务器时,从服务器都将向主服务器发送一个SYNC 命令;
  • 接到SYNC 命令的主服务器将开始执行 BGSAVE ,并在保存操作执行期间,将所有新执行的写入命令都保存到一个缓冲区里面;
  • BGSAVE 执行完毕后,主服务器将执行保存操作所得的 .rdb 文件发送给从服务器,从服务器接收这个 .rdb 文件,并将文件中的数据载入到内存中;
  • 之后主服务器会以 Redis 命令协议的格式,将写命令缓冲区中积累的所有内容都发送给从服务器。

1.2 配置主从复制

1.2.1 修改从库配置文件

[root@centos7 ~]# vim /usr/local/redis/conf/redis_6380.conf
slaveof 10.0.0.103 6379     # 配置master服务器IP和端口
masterauth 123456           # master服务器如果需要认证的话添加此项设置master登录密码
slave-read-only             # 只读模式
min-slaves-to-write 2       # 从服务器不少于2台时才允许写入数据
min-slaves-max-lag 30       # 从服务器延迟不大于30秒,单位为秒

1.2.2 重启6380实例

1.2.3 查看主从关系

10.0.0.103:6380> role
1) "slave"
2) "10.0.0.103"
3) (integer) 6379
4) "connected"
5) (integer) 490

10.0.0.103:6381> role
1) "slave"
2) "10.0.0.103"
3) (integer) 6379
4) "connected"
5) (integer) 560

10.0.0.103:6379> info replication
# Replication
role:master
connected_slaves:2
slave0:ip=10.0.0.103,port=6380,state=online,offset=476,lag=1
slave1:ip=10.0.0.103,port=6381,state=online,offset=476,lag=0
master_replid:3b6a22da23ceeba2e687235987fa3d183bae732e
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:476
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:476

1.3 主库宕机后从库提升为主库

1.3.1 模拟master宕机

10.0.0.103:6379> shutdown

1.3.2 提升从库为主库

10.0.0.103:6380> slaveof no one
OK

1.3.3 更改从库中新的主库

10.0.0.103:6381> slaveof 10.0.0.103 6380
OK

1.3.4 查看更新后状态

10.0.0.103:6380> info replication
# Replication
role:master
connected_slaves:1
slave0:ip=10.0.0.103,port=6381,state=online,offset=5614,lag=1
master_replid:c7e63a2e44cdb808d2822e3c163f6104a3d3ef14
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:5614
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:5587
repl_backlog_histlen:28

10.0.0.103:6381> role
1) "slave"
2) "10.0.0.103"
3) (integer) 6380
4) "connected"
5) (integer) 5600

1.3.5 宕机重启后做从库加入集群

[root@centos7 ~]# vim /usr/local/redis/conf/redis_6379.conf
masterauth 123456

10.0.0.103:6379> slaveof 10.0.0.103 6380
OK
10.0.0.103:6379> role
1) "slave"
2) "10.0.0.103"
3) (integer) 6380
4) "connected"
5) (integer) 6118
温馨提示:本文最后更新于2022-12-20 20:57:49,已超过431天没有更新。某些文章具有时效性,若文章内容或图片资源有错误或已失效,请联系站长。谢谢!
转载请注明本文链接:https://blog.leonshadow.cn/763482/891.html
© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享