Redis主从复制原理及配置

为了实现高可用,我们通常需要将Redis部署多份,部署在不同的服务器上,然后通过数据同步,来实现多副本之间数据的一致,Redis自身提供了主从复制机制来实现数据同步,从而使得我们可以在此基础上,能实现快速的故障恢复,达到生产中高可用的要求。

Redis主从复制的过程

1.从服务器连接上主服务器,发送SYNC命令

2.主服务器执行BGSAVE,并使用缓冲区记录BGSAVE之后执行的所有写命令

3.BGSAVE执行完毕,向从服务器发送快照文件(RDB),并在发送期间继续使用缓冲区记录被执行的写命令;从服务载入主服务器发来的快照文件

4.快照文件发送完毕,开始向从服务器发送存储在缓冲区里的写命令

5.缓冲区存储的写命令发送完毕;从现在开始,每执行一个写命令,就向从服务器发送相同的写命令;从服务器执行主服务器发来的写命令

主从复制的用途 

1 数据冗余:主从复制实现了数据的热备份;

2 故障恢复:当主节点出现问题,可以由从节点提供服务,实现快速的故障恢复;

3 负载均衡:在主从复制的基础上,配合读写分离,由从库分担读的压力,主库只有写的压力,从而实现负载均衡,提高redis服务的并发能力

4.高可用基石:主从复制是哨兵模式和集群能够实施的基础,是高可用的基础

一主二从的搭建

鉴于资源的问题,接下来我以部署在虚拟机中的一主二从来演示

将redis安装包解压,复制3份,重命名为redis-6379、redis-6380、redis-6381 

此处的配置信息仅列出配置主从必需的信息,其他未尽配置可以按需修改

主库6379要改的地方

bind 0.0.0.0
port 6379
daemonize yes
pidfile /var/run/redis_6379.pid
logfile "/opt/redis-6379/log/6379.log"
#自身的密码
requirepass 123456

从库6380要改的配置信息

bind 0.0.0.0
port 6380
daemonize yes
pidfile /var/run/redis_6380.pid
logfile "/opt/redis-6379/log/6380.log"
#自身的密码
requirepass 123456
#主库的ip port
replicaof 192.168.0.101 6379
#主库的密码
masterauth 123456

从库6381要修改的地方

bind 0.0.0.0
port 6381
daemonize yes
pidfile /var/run/redis_6381.pid
logfile "/opt/redis-6379/log/6381.log"
#自身的密码
requirepass 123456
#主库的ip port
replicaof 192.168.0.101 6379
#主库的密码
masterauth 123456

主从复制,主库不需要特殊配置,只用配置下从库,核心的配置是这2个replicaof 192.168.0.101 6379配置主节点的ip和端口,masterauth 123456配置主库的密码

如上配置以后,就算完工了。接下来我们验证下,往主库里写数据

然后在6380里看下同步过来了没

在6381里看下数据是否同步过来了

一切正常,那我们的一主二从就搭建完成了。

ok,现在我们有了一个小的集群,数据冗余在了3个redis实例上,如果主库宕机了,我们可以手动切换,在从库里选出一个来改成主库。这样人工干预,我们的服务有一小段时间不可用。和高可用的要求相差甚远,下一篇我们通过引入哨兵模式来实现故障自动切换。

相关推荐
©️2020 CSDN 皮肤主题: 技术工厂 设计师:CSDN官方博客 返回首页