天天看点

Redis主从复制(自带读写分离)

Redis主从复制特别方便,不需要其他中间件,而且自带读写分离

前提准备

  1. 至少两台服务器,或同一个IP的不同端口(我用的是VMware虚拟出来的三台Linux)
  2. 安装Redis
  3. 不同服务器务必关防火墙或开放端口号

实现原理

Redis主从复制(自带读写分离)

                                                                          (图片源自:蚂蚁课堂)

-  从服务器连接主服务器,发送SYNC命令; 

-  主服务器接收到SYNC命名后,开始执行BGSAVE命令生成RDB文件并使用缓冲区记录此后执行的所有写命令; 

-  主服务器BGSAVE执行完后,向所有从服务器发送快照文件,并在发送期间继续记录被执行的写命令; 

-  从服务器收到快照文件后丢弃所有旧数据,载入收到的快照; 

-  主服务器快照发送完毕后开始向从服务器发送缓冲区中的写命令; 

-  从服务器完成对快照的载入,开始接收命令请求,并执行来自主服务器缓冲区的写命令;

主从复制步骤

集群图:

Redis主从复制(自带读写分离)

① 修改每台服务器redis.conf

### 修改为yes  允许后台启动
daemonize yes
### 取消密码注释,并设置密码
requirepass 123456
           

② 从服务器slave1配置主从同步(从配主不配)

--- 修改从redis中的 redis.conf文件
### 主服务器IP 端口号
slaveof 192.168.93.138 6379  
### 主redis服务器密码
masterauth 123456
           

③ 同理配置salve2,主从同步完毕

--- 修改从redis中的 redis.conf文件
### 主服务器IP 端口号
### slave2可以将主服务器配置成slave1,但根本意义上主服务器还是master
slaveof 192.168.93.138 6379  或   slaveof 192.168.93.139 6379
### 主redis服务器密码
masterauth 123456
           

注意:

  • 在slave2主从同步之前的数据也会同步到slave2中
  • Redis的从服务器默认为 only read,不需要配置

笔者水平有限,若有错误欢迎纠正,欢迎讨论

参考:https://www.cnblogs.com/kevingrace/p/5685332.html(很好的博文,想更深入了解Redis主从原理的可以参照)

           蚂蚁课堂

继续阅读