redis学习篇(八)-----高级特性之主从同步篇

本文介绍了Redis主从同步的工作原理及配置方法,包括如何通过主从同步提高系统稳定性与伸缩性,以及主从同步的具体流程。

主从同步可以防止主机坏掉而导致网站不能正常运行。通过主从同步可以允许多个slave server跟master server拥有相同的数据库副本。
redis主从同步的优点

  • master 可以有多个slave
  • 多个slave除了可以连接到相同的master,还可以连接到其他slave,当master服务器意外dump之后,这台slave就可以充当master的角色
  • 主从同步不会阻塞redis处理client的请求。当一个或多个slave与master进行初次同步数据时,master可以继续处理客户端的请求。同样的,slave初次同步的时候也不会阻塞。
  • 提高系统的伸缩性,比如多个slave专门用于客户端的读请求
  • 在master server上禁止数据持久化(注释配置文件中所有的save配置选项),只在slave server上进行数据持久化

主从同步的配置

redis的同步比较简单,在配置文件中修改slaveof选项,如果master设置了密码还需要修改masterauth选项,格式为

slave of <主机ip> <主机端口>

masterauth 主机密码

我这里就简单的cp一下配置文件改一下配置,改端口号为6378模拟下过程。

更改slave配置文件中的slaveof与masterauth:

114818_D18w_2667773.png

在redis2.6以后的版本中,slave server默认是只读模式,如果需要slave 可写,就更改conf中的slave-read-only 为no。

开启master跟slave服务器,登录master服务器并随机输入一些数据

120230_rVTw_2667773.png

再登录slave服务器,使用-p port登录,检查slave中的数据

120311_kPMZ_2667773.png

发现数据已经同步。保持两个客户端都打开,在master中添加新数据,查看slave中是否同步:

master中:

120505_upMa_2667773.png

slave中:

120602_jidv_2667773.png

分别在master与slave中执行info命令,查看replication:

121207_Ge22_2667773.png

121242_hMQG_2667773.png

由此可看,主从同步成功。

主从同步的原理及流程

设置好slave并启动服务器之后,slave自动与master建立连接,发送sync命令。无论是否是第一次同步建立的连接,master都会启动一个后台进程,把内存数据以快照的方式写入文件,同时master主进程开始收集新的写命令并且缓存起来。master后台进程完成快照操作后就会把数据发送给slave,slave把数据保存在磁盘上然后再加载到内存中。当这一系列的操作完成之后,master就会把缓存的命令发给slave,后续master收到的写命令都会通过开始建立的连接发送给slave。当master与slave断开连接,slave自动重新建立连接。如果master同时收到多个slave发来的同步请求,master只启动一个进程写数据库镜像,然后发送给所有的slave。

主从同步的流程:

  1. slave server连接到master server
  2. slave server发送sync命令到master请求同步
  3. master server启动一个后台进程把数据以快照的方式备份到rdb文件,同时master主进程会开始收集新的写命令到缓存
  4. master server把备份好的rdb文件发送给slave server
  5. slave server清空服务器数据,把接收到的rdb文件写入到磁盘中
  6. slave server完成写入操作后,master会将缓存的写命令发送到slave server,slave执行接受到的命令之后,就可以达到同步的效果

 



 

转载于:https://my.oschina.net/OSrainn/blog/730002

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值