Redis主从配置(五)

2017年12月9日11:15:49 发表评论 689 views

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

weinxin
我的微信
如果有技术上的问题可以扫一扫我的微信
版权声明
1. 本网站名称:Leon的博客
2. 本站永久网址:https://blog.leonshadow.cn
3. 本网站的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长QQ632113590进行删除处理。
4. 本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
5. 本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
6. 本站资源大多存储在云盘,如发现链接失效,请联系我们我们会第一时间更新。
liyang