一、主从复制原理

在搭建redis读写分离架构时,master必须开启持久化。(可参考博客,RDB和AOF持久化策略一起使用也行Redis的持久化机制(RDB和AOF)(1)_p&f°的博客-CSDN博客

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

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

(三台虚拟机均需要安装redis,请看redis在CentOs服务器上的安装和设置开机自启动_p&f°的博客-CSDN博客)

三、具体实现

1、先配置129从机。进入redis主配置文件夹

cd /usr/local/redis/

vim redis.conf

找到如下位置,配置redis.conf从节点

①设置连接主节点的ip和接口

②设置连接主节点redis的密码

 ③设置从节点为只读

 2、下面来验证129这个从节点是否设置成功。

①在重启redis使得配置生效前,先确保持久化文件夹下没有appendonly.aof和dump.rdb文件。这两个文件就是用来持久化的,如果从机第一次装redis默认是没有的,如果有的话删除就好了,避免影响后面测试结果。我这里之前设置过是有的。rm删除即可。

(如果找不到位置,请查看Redis的持久化机制(RDB和AOF)(1)_p&f°的博客-CSDN博客

中的RDB的配置第一条 1. 保存位置)

且确保129从机的redis中没有任何数据

 ② 进入到151主机中,查看已有的数据

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

 3、 进入从机129中重启redis

/etc/init.d/redis_init_script stop

/etc/init.d/redis_init_script start

① 此时查看持久化文件夹,主机redis的持久化文件appendonly.aof和dump.rdb已被同步过来

 登录从机的redis,查看 keys * 。此时已将主节点redis中的数据同步过来

 继续输入info replication,查看从机redis的情况

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


4、此时一主一从(151主,129从)的redis配置已经完成,下面来配置130从节点,与129从节点其实是一样的,参考上面配置129从节点过程即可。

5、此时进入151主机,查看将看到两台从机redis

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

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

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

一、无磁盘化复制原理

 

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

 

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐