八、主从复制

八、主从复制

1. 简介

(1)互联网“三高”架构:高并发、高性能、高可用

• 高并发 - 对数据库高并发读写的需求。

• 高性能 - 对海量数据的高效率存储和访问的需求。

• 高可用 - 对数据库的高可扩展性和高可用性的需求。

(2)单机redis的风险与问题

问题A.机器故障:硬盘故障、系统崩溃

问题B.容量瓶颈:内存不足 (128G/256G…)

(3)解决办法:

为了避免单点Redis服务器故障,准备多台服务器,互相连通。将数据复制多个副本保存在不同的服 务器上,连接在一起,并保证数据是同步的。即使有其中一台服务器宕机,其他服务器依然可以继续 提供服务,实现Redis的高可用,同时实现数据冗余备份。

(4)多台服务器连接方案

 

(5)主从复制

概念:即将master中的数据即时、有效的复制到slave中

特征:一个master可以拥有多个slave,一个slave只对应一个master

职责:

  1. master:
  • 写数据
  • 执行写操作时,将出现变化的数据自动同步到slave
  • 读数据(可忽略)
  1. slave:
  • 读数据
  • 写数据(禁止)

2. 主从复制工作流程

(1)主从复制过程大体可以分为3个阶段

    1. 建立连接阶段(即准备阶段)
    2. 数据同步阶段
    3. 命令传播阶段

2)主从复制三个流程详述

阶段一:建立连接阶段

建立slave到master的连接,使master能够识别slave,并保存slave端口号

主从连接的三种方式(slave连接master):

方式一:从服务器的客户端发送命令

redis:6380> slaveof <masterip> <masterport>

方式二:启动从服务器时加参数

[root@localhost ~]# redis-server --slaveof <masterip> <masterport>

方式三:从服务器的redis.conf配置

slaveof <masterip> <masterport>

 

主从断开连接:

客户端发送命令

slaveof no one

注:slave断开连接后,不会删除已有数据,只是不再接受master发送的数据

 

授权访问:

如果master设置了requirepass,那么slave要连上master,需要有master的密码才行。masterauth 就是用来配置master的密码,这样可以在连上master后进行认证。

masterauth <master-password>

 

阶段二:数据同步阶段工作流程

在slave初次连接master后,复制master中的所有数据到slave

将slave的数据库状态更新成master当前的数据库状态

阶段三:命令传播阶段

当master数据库状态被修改后,导致主从服务器数据库状态不一致,此时需要让主从数据同步到一致的状态,同步的动作称为命令传播

master将接收到的数据变更命令发送给slave,slave接收命令后执行命令

 

(3)主从复制常见问题

  • 频繁的网络中断
  • 频繁的全量复制
  • 数据不一致

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值