Redis教程——主从复制

主从复制

为了数据更加安全可靠,在实际的项目中,肯定是有多个Redis服务,主机Redis以写为主,从机Redis以读为主,当主机Redis数据变化时,自动将新的数据异步同步到其它从机Redis中,也就是主从复制,其原理如下:

Redis教程——主从复制

Redis教程——主从复制

编辑

主从复制优势:

  • 实现了读写分离,更好地提高Redis的性能;
  • 容灾恢复;
  • 数据备份;
  • 水平扩容支撑高并发;

为了方便演示,这里我们准备了三台服务器并安装了Redis,没服务器的可以使用VMware虚拟机,主从关系如下图所示:

Redis教程——主从复制

Redis教程——主从复制

编辑

注意:服务器之间必须相互ping通和必须放行Redis的端口,如下图所示:

Redis教程——主从复制

Redis教程——主从复制

编辑

Redis教程——主从复制

Redis教程——主从复制

编辑

这里Redis端口都是6379,大家可以根据需求,调整Redis的端口。

在开始之前,我们先初步配置Redis,redis.conf配置如下所示:

daemonize yes        # 开启Redis
bind 127.0.0.1        # 注释该行
protected-mode no       # 允许外界连接
requirepass 密码              # 为Redis设置密码
dir /myRedis       # 指定当前工作目录
logfile "/myRedis/6379.log"  # Redis日志

Redis教程——主从复制

实现主从

主机Redis一般情况下都会设置登录密码,那么从机Redis需要配置masterauth来设置校验密码,否则主机Redis会拒绝从机Redis的访问请求。在实现主从之前,第一在从机Redis的redis.conf配置中添加如下:

masterauth "123456"

Redis教程——主从复制

配置完成后,执行如下命令查看主从关系和配置信息,

info replication   # 查看主从关系和配置信息
keys *      # 查看Redis数据库的数据所有键

Redis教程——主从复制

如下图所示:

Redis教程——主从复制

Redis教程——主从复制

编辑

可以看出目前还没任何主从关系,而且Redis数据库没任何数据。

接下来我们将使用命令行和配置的方式实现主从复制。

命令实现主从

使用slaveof命令实现主从,其配置语法格式如下:

slaveof 主机RedisIP 主机Redis端口

Redis教程——主从复制

示例代码如下:

slaveof 47.119.21.164 6379

Redis教程——主从复制

运行结果如下:

Redis教程——主从复制

Redis教程——主从复制

编辑

可以发现,当执行完命令后,47.119.21.164就变为了主机,175.178.108.75就变为了从机。

当主机Redis拥有读写操作权限,从机Redis只有读操作权限,如下图所示:

Redis教程——主从复制

Redis教程——主从复制

编辑

当某个Redis服务变为从机后,会立即复制主机Redis中的数据,如下图所示:

Redis教程——主从复制

Redis教程——主从复制

编辑

注意:使用命令行实现主从后,当从机Redis断开连接后,主从关系也会断开。如下图所示:

Redis教程——主从复制

Redis教程——主从复制

编辑

配置实现主从

使用replicaof配置从机Redis,其配置语法格式如下:

replicaof 主机RedisIP 主机Redis端口

Redis教程——主从复制

示例代码如下:

replicaof 47.119.21.164 6379

Redis教程——主从复制

如下图所示:

Redis教程——主从复制

Redis教程——主从复制

编辑

接下来我们依次启动主从Redis即可,当主机Redis执行写操作后,从机Redis立刻复制,如下图所示:

Redis教程——主从复制

Redis教程——主从复制

编辑

注意:

  • 当从机Redis断开连接后,主机Redis执行了写操作,断开连接的从机Redis重新连接,从机Redis会立刻复制主机Redis的数据,实现数据同步;
  • 当主机Redis关闭后,从机Redis不会变为主机;

关闭主从

使用slaveof no one命令使当前数据库停止与其他数据库的同步,实现从机Redis变为主机Redis。如下图所示:

Redis教程——主从复制

Redis教程——主从复制

编辑

注意:如果是配置实现主从的话,从机Redis重启后,又会重新建立主从关系。

好了,Redis教程——主从复制就讲到这里了,下篇文章我们学习Redis教程——哨兵监控。

© 版权声明
THE END
如果内容对您有所帮助,就支持一下吧!
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容