一、主从复制原理
在搭建redis读写分离架构时,master必须开启持久化。
一旦master宕机,虽然slave可以继续提供读服务。但等到master恢复,由于没有持久化,内存里面没有任何数据,master再次做数据同步的时候,会把slave里的数据清空。
二、本博客实现的redis主从复制架构
我是在windows下操作的。把原本的redis版本,复制两份slave出来。一个端口改为6666,一个端口改为7777
三、具体实现
1、配置slave从机。
进入redis文件夹,找到文件:redis.windows.conf
① 设置端口,GENERAL配置下:port 6666
④ 设置从节点为只读:slave-read-only yes
2、查看master主机信息
在重启从机redis使得配置生效前,先确保持久化文件夹下没有appendonly.aof和dump.rdb文件。这两个文件就是用来持久化的,我这里是从master复制过去的,slave里面有dump.rdb文件,所以先删除。
① 查看主机master已有的数据:
② 输入info replication 查看当前是否有主从redis:
3.跟master信息对比,验证从节点是否设置成功。
① 在从机中启动redis服务:
可以看到主机的dump.rdb文件已经复制到从机中了。(上面已经把从机的持久化文件全部删除过)
② 登录从机的redis,查看从机信息
③ 切换回主机master中,查看主机redis情况,对比上面第2 ②步一开始没有设置从机时,主机redis的情况
4.另外一台从机,也是按照上面1-3步操作即可!
四、结论验证
搭建完的小伙伴可以自行测试以下三个结论:
- 如果,你在主机中新增key,两台从机中也会同步。
- 如果,你把其中一台从机redis关闭(宕机),主机redis中新增加的key,会在宕机的从机的redis重启后,再同步过来。
- 如果,主机redis宕机,从机不会替代主机redis,而是等待主机redis重启后,继续作为主机的从机
题外扩展:Redis无磁盘化复制
1.无磁盘化复制原理
2.配置无磁盘化复制开启(还是在redis.windows.conf配置文件中)
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END