Redis之主从复制

54 篇文章 0 订阅
47 篇文章 0 订阅
本文介绍了Redis主从复制的基本概念、作用和流程,包括数据冗余、故障恢复和负载均衡。主从复制是高可用性的基础,用于实现数据备份、快速故障恢复和读写分离。文中还详细讲解了如何搭建主从复制环境,涉及配置文件修改及验证步骤。
摘要由CSDN通过智能技术生成

Redis之主从复制

主从复制适用于数据的多机备份,以及对于读操作的负载均衡和简单的故障恢复,哨兵模式基于主从复制,部署哨兵模式必须先部署主从复制,其在主从复制基础上提供了自动化的故障恢复。但是其写操作无法负载均衡,存储能力受到单机的限制。在MySQL数据库中为保证数据的高可用性,其有主从复制与MHA实现高可用。

主从复制原理

  • 主从复制,是指将一台 Redis 服务器的数据,复制到其他的 Redis 服务器。前者称为主节点(Master),后者称为从节点(Slave);数据的复制是单向的,只能由主节点到从节点。
  • 默认情况下,每台 Redis 服务器都是主节点;且一个主节点可以有多个从节点 (或没有从节点),但一个从节点只能有一个主节点。

主从复制作用

  • 数据冗余:主从复制实现了数据的热备份,是持久化之外的一种数据冗余方式。
  • 故障恢复:当主节点出现问题时,可以由从节点提供服务,实现快速的故障恢复;实际上是一种服务的冗余。
  • 负载均衡:在主从复制的基础上,配合读写分离,可以由主节点提供写服务,由从节点提供读服务 (即写 Redis 数据时应用连接主节点,读 Redis 数据时应用连接从节点),分担服务器负载;尤其是在写少读多的场景下,通过多个从节点分担读负载,可以大大提高Redis服务器的并发量。
  • 高可用基石:除了上述作用以外,主从复制还是哨兵和集群能够实施的基础,因此说主从复制是Redis高可用的基础。

主从复制流程

  • 若启动一个Slave机器进程,则它会向Master机器发送一个“sync command" 命令,请求同步连接。
  • 无论是第一次连接还是重新连接,Master机器 都会启动一个后台进程,将数据快照保存到数据文件中(执行rdb操作) ,同时 Master 还会记录修改数据的所有命令并缓存在数据文件中。
  • 后台进程完成缓存操作之后,Master 机器就会向 Slave 机器发送数据文件,Slave 端机器将数据文件保存到硬盘上,然后将其加载到内存中,接着 Master 机器就会将修改数据的所有操作一并发送给 Slave 端机器。若 Slave 出现故障导致宕机,则恢复正常后会自动重新连接。
  • Master机器收到 Slave 端机器的连接后,将其完整的数据文件发送给 Slave 端机器,如果 Mater 同时收到多个 Slave 发来的同步请求,则 Master 会在后台启动一个进程以保存数据文件,然后将其发送给所有的 Slave 端机器,确保所有的 Slave 端机器都正常。

搭建主从复制

环境

master:192.168.116.137

slave1:192.168.116.138

slave2:192.168.116.139

安装Redis服务、关闭防火墙

三台服务器同样配置

systemctl stop firewalld
setenforce 0

修改master节点配置文件

#修改master主配置文件
vim /etc/redis/6379.conf
bind 0.0.0.0         			   #70行,注释掉bind项,或修改为0.0.0.0,默认监听所有网卡
daemonize yes         			   #137行,开启守护进程
logfile /var/log/redis_6379.log    #172行,指定日志文件目录
dir /var/lib/redis/6379            #264行,指定工作目录
appendonly yes       			   #700行,开启AOF持久化功能

#重启redis
/etc/init.d/redis_6379 restart

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ULmBaNVV-1664443388976)(F:\typorase\jpg\598.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ttOGpVdo-1664443388977)(F:\typorase\jpg\599.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oXJRubkF-1664443388977)(F:\typorase\jpg\600.png)]

在这里插入图片描述

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ckoaRuHq-1664443388978)(F:\typorase\jpg\602.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QHxZZAF9-1664443388978)(F:\typorase\jpg\603.png)]

修改Slave节点配置文件

#修改slave1节点、slave2节点配置文件,slave1和slave2修改步骤相同
vim /etc/redis/6379.conf
bind 0.0.0.0        				 #70行,修改监听地址为0.0.0.0
daemonize yes       				 #137行,开启守护进程
logfile /var/log/redis_6379.log      #172行,指定日志文件目录
dir /var/lib/redis/6379              #264行,指定工作目录
replicaof 192.168.159.230 6379         #287行,取消注释并指定要同步的Master节点IP和端口
appendonly yes       				 #700行,开启AOF持久化功能

#重启slave1节点和slave2节点redis服务
/etc/init.d/redis_6379 restart

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-F8QdCMy2-1664443388978)(F:\typorase\jpg\604.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-r5GL3IX1-1664443388978)(F:\typorase\jpg\605.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZG0rsfNE-1664443388979)(F:\typorase\jpg\606.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FEqNjDLI-1664443388979)(F:\typorase\jpg\607.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-o4s1mBUl-1664443388979)(F:\typorase\jpg\608.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ElZIds2U-1664443388979)(F:\typorase\jpg\609.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YfJtbgQy-1664443388980)(F:\typorase\jpg\610.png)]

验证

#在Master节点上看日志:
tail -f /var/log/redis_6379.log

#在Master节点上验证从节点:
redis-cli
127.0.0.1:6379> info replication

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vIuOLYc1-1664443388980)(F:\typorase\jpg\611.png)]

在master创建数据

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Gf4T8KUY-1664443388980)(F:\typorase\jpg\612.png)]

slave1查看数据

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pVpD0ZZj-1664443388980)(F:\typorase\jpg\613.png)]

slave2查看数据

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FgFhjed2-1664443388980)(F:\typorase\jpg\614.png)]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值