Redis主从同步—笔记

来源:互联网 发布:java程序员到架构师 编辑:程序博客网 时间:2024/06/07 01:29

主从同步可以防止主机坏掉导致网站不能正常运作,这种方法即把从机设置为主机即可。 Redis支持主从同步,而且配置很简单。Redis主从同步的优点如下:

  • Master可以有多个Slave
  • 多个Slave连接到相同Master,Slave还可以连接其他Slave形成图形结构
  • 不会阻塞Master。 当一个或者多个Slave与Master进行初次同步数据时,Master可以继续处理客户端的请求。相反,Slave在初次同步数据时会阻塞从而不能处理客户端的请求
  • 主从同步用来提高系统的伸缩性,比如多个Slave专门用于客户端的读请求
  • 在Master服务器上禁止数据持久化(注释配置文件中所有save配置选项), 只在Slave服务器上进行数据持久化。

1.  同步原理

Redis主从同步设置很简单,设置好Slave服务器后,Slave自动和Master建立连接,发送sync命令。

无论是第一次同步建立的连接还是连接断开后重新建立的连接,Master都启动一个后台进程,将内存数据以快照方式写入文件中,同时Master主进程开始收集新的写命令并且缓存起来。Master后台进程完成内存快照操作后,把数据文件发给Slave,后续Master收到的写命令都通过开始建立的连接发送给Slave。当Master与Slave断开连接,Slave自动重新建立连接。如果Master同时收到多个Slave发来的同步请求,其只启动一个进程写数据库镜像,然后发送给所有Slave。

Redis主从同步过程分两个阶段,第一阶段如下:

Slave服务器主动连接到Master服务器

Slave服务器发送sync命令到Master服务器请求同步

Master服务器备份数据库到rdb文件

Master服务器把rdb文件传输给Slave服务器

Slave服务器清空数据库数据,把rdb文件数据导入数据库中.

完成第一阶段,接下来Master服务器把用户所有更改数据的操作,通过命令的形式转发给所有Slave服务器,Slave服务器只需执行Master服务器发送过来的命令就可以达到同步的效果。

相对于MySQL来说, Redis主从复制配置很简单,只需在Slave服务器配置文件中加入以下配置项

slaveof 192.168.1.1 6379     # 指定Master的IP和端口


0 0
原创粉丝点击