Redis主从复制(样例+详解)

一、实验目的

Redis数据库的主从复制原理及实现

二、主从复制

1、什么是主从复制

将多台数据库服务器分为主节点和从节点,主节点数据更新后会根据配置和策略,自动同步到从节点上,从而保证主从节点中存有相
同的数据。
在这里插入图片描述

2、主从复制的作用

  • 数据可以有多份副本
  • 提升数据库系统的请求处理能力
  • 实现读写分离机制(主节点以写为主;从节点以读为主)
  • 容灾快速恢复(主节点shutdow,可以将从节点提升为主节点)

3、Redis主从复制原理

全量数据同步
主节点发送快照RDB文件给从节点

增量同步(命令传播)
全量数据同步完成后,主节点将执行过的写命令发送给从节点

三、代码实现

1、配置文件

主节点(master):端口号为 6379 完整 IP:127.0.0.1 6379
从节点 1(slave1):端口号为 6380 完整 IP:127.0.0.1 6380
从节点 2(slave2):端口号为 6381 完整 IP:127.0.0.1 6381

配置文件
请添加图片描述

指定master的节点
在这里插入图片描述

启动三台服务器
请添加图片描述

查看服务器信息

info replication

得到master信息:
请添加图片描述
得到slave信息:
请添加图片描述

主从节点数据同步实验

在master中写入数据,可以在slave中读取

请添加图片描述

请添加图片描述

从节点不能写数据实验
请添加图片描述

2、主从复制的容灾处理(手动版)

在 Redis 主从结构中,当 master 服务出现故障时,可手动将其中一个 slave 节点提升为 master 节点,然后将剩下的 slave 节点重新设置为新的 master 节点的从节点,从而继续进行用户请求处理。

将master主节点停止,模拟故障

shutdown

在这里插入图片描述

6380端口提升为master

slaveof no one

请添加图片描述

将6381端口挂在新的master上
请添加图片描述

== 可以看到,现在的主从(Master/Slave)关系为:Master 是 6380 服务器,Slave 是6381 服务器,可以继续处理用户的请求。==

故障机6379重启,虽然是主节点,但是没有从节点
请添加图片描述

6379变从
6379它虽然是主节点,但是没有从节点,因此需要把它添加到现有的Master/Slave 结构中,让它变成 6380 机的从节点。

info sentinel

请添加图片描述

info replication

请添加图片描述

现在的 Master/Slaver 结构是:

  • Master: 6381 服务器
  • Slave: 6380 和 6379 服务器

四、主从同步优化

主从同步可以保证主从数据的一致性,非常重要。可以从以下几个方面来优化 Redis主从集群:

  • 在 master 中配置 repl-diskless-sync yes 启用无磁盘复制,避免全量同步时的磁盘 IO
  • Redis 单节点上的内存占用不要太大,减少 RDB 导致的过多磁盘 IO
  • 适当提高 repl_baklog 的大小,发现 slave 宕机时尽快实现故障恢复,尽可能避免全量同步
  • 限制一个 master 上的 slave 节点数量,如果实在是太多 slave,则可以采用主- 从-从链式结构,减少 master 压力

五、总结

  • 一个 master 节点可以有多个 slave 节点;
  • slave 节点故障,读请求的处理性能下降;
  • master 节点故障,写请求无法执行
  • 当 master 发生故障,可手动将其中一台 slave 使用 slaveof no one 命令提升为 master,其它 slave 执行 slaveof 命令指向这个新的 master;
  • 主从复制模式的故障转移需要手动操作,要实现自动化处理,这就需要Sentinel 哨兵,实现故障自动转移
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值