Redis提供了复制功能,可以实现在主数据库(Master)中的数据更新后,自动将更新的数据同步到从数据库(Slave)。一个主数据库可以拥有多个从数据库,而一个从数据库只能拥有一个主数据库。
Redis的主从数据复制原理如下:
步骤说明:
1)一个从数据库在启动后,会向主数据库发送SYNC命令。
2)主数据库在接收到SYNC命令后会开始在后台保存快照(即RDB持久化的过程),并将保存快照期间接收到的命令缓存起来。在该持久化过程中会生成一个.rbd快照文件。
3)在主数据库快照执行完成后,Redis会将快照文件和所有缓存的命令以.rdb快照文件的形式发送给从数据库。
4)从数据库收到主数据库的.rdb快照文件后,载入该快照文件到本地。
5)从数据库执行载入后的.rdb快照文件,将数据写入内存中。
【以上步骤称为复制初始化】
6)在复制初始化结束后,主数据库在每次收到写命令时都会将命令同步给从数据库,从而保证主从数据库的数据一致。
在Redis中开启复制功能时,主数据库无需进行任何配置,而需要在从数据库配置文件中加入如下配置:
# slaveof master_address master_port
slaveof 127.0.0.1 9000
# 如果master有密码,则需要设置masterauth
masterauth=123
【注意:配置完需重启从Redis】