Redis学习教程八:主从复制(读写分离)

一、主从复制原理

图片[1] - Redis学习教程八:主从复制(读写分离) - 正则时光

在搭建redis读写分离架构时,master必须开启持久化

一旦master宕机,虽然slave可以继续提供读服务。但等到master恢复,由于没有持久化,内存里面没有任何数据,master再次做数据同步的时候,会把slave里的数据清空。

二、本博客实现的redis主从复制架构

图片[2] - Redis学习教程八:主从复制(读写分离) - 正则时光

我是在windows下操作的。把原本的redis版本,复制两份slave出来。一个端口改为6666,一个端口改为7777

图片[3] - Redis学习教程八:主从复制(读写分离) - 正则时光

三、具体实现

1、配置slave从机。

进入redis文件夹,找到文件:redis.windows.conf

① 设置端口,GENERAL配置下port 6666

图片[4] - Redis学习教程八:主从复制(读写分离) - 正则时光

④ 设置从节点为只读slave-read-only yes

2、查看master主机信息

在重启从机redis使得配置生效前,先确保持久化文件夹下没有appendonly.aofdump.rdb文件。这两个文件就是用来持久化的,我这里是从master复制过去的,slave里面有dump.rdb文件,所以先删除。

① 查看主机master已有的数据:

图片[5] - Redis学习教程八:主从复制(读写分离) - 正则时光

② 输入info replication 查看当前是否有主从redis

图片[6] - Redis学习教程八:主从复制(读写分离) - 正则时光

3.跟master信息对比,验证从节点是否设置成功。

① 在从机中启动redis服务

可以看到主机的dump.rdb文件已经复制到从机中了。(上面已经把从机的持久化文件全部删除过)

图片[7] - Redis学习教程八:主从复制(读写分离) - 正则时光

② 登录从机的redis,查看从机信息

图片[8] - Redis学习教程八:主从复制(读写分离) - 正则时光

 ③ 切换回主机master中,查看主机redis情况,对比上面第2 ②步一开始没有设置从机时,主机redis的情况

图片[9] - Redis学习教程八:主从复制(读写分离) - 正则时光

4.另外一台从机,也是按照上面1-3步操作即可!

图片[10] - Redis学习教程八:主从复制(读写分离) - 正则时光

四、结论验证

搭建完的小伙伴可以自行测试以下三个结论:

  • 如果,你在主机中新增key,两台从机中也会同步。
  • 如果,你把其中一台从机redis关闭(宕机),主机redis中新增加的key,会在宕机的从机的redis重启后,再同步过来。
  • 如果,主机redis宕机,从机不会替代主机redis,而是等待主机redis重启后,继续作为主机的从机

题外扩展:Redis无磁盘化复制

1.无磁盘化复制原理

图片[11] - Redis学习教程八:主从复制(读写分离) - 正则时光

2.配置无磁盘化复制开启(还是在redis.windows.conf配置文件中)

图片[12] - Redis学习教程八:主从复制(读写分离) - 正则时光
© 版权声明
THE END
喜欢就支持一下吧
点赞14 分享