redis的主从复制详解

一.主从复制简介

1.互联网“三高”架构

  • 高并发
  • 高性能
  • 高可用
    面对大量的用户的同时使用,你的服务器撑得住吗?

2.你的“Redis”是否高可用

单机redis的风险与问题

  • 问题1.机器故障
    • 现象:硬盘故障、系统崩溃
    • 本质:数据丢失,很可能对业务造成灾难性打击
    • 结论:基本上会放弃使用redis.
  • 问题2.容量瓶颈
    • 现象:内存不足,从16G升级到64G,从64G升级到128G,无限升级内存
    • 本质:穷,硬件条件跟不上
    • 结论:放弃使用redis
  • 结论:
    为了避免单点Redis服务器故障,准备多台服务器,互相连通。将数据复制多个副本保存在不同的服
    务器上,连接在一起,并保证数据是同步的。即使有其中一台服务器宕机,其他服务器依然可以继续
    提供服务,实现Redis的高可用,同时实现数据冗余备份。

3.多台服务器连接方案

  • 提供数据方:master
    主服务器,主节点,主库
    主客户端
  • 接收数据方:slave
    从服务器,从节点,从库
    从客户端
  • 需要解决的问题:
    数据同步
  • 核心工作:
    master的数据复制到slave中
    在这里插入图片描述

4.主从复制

主从复制即将master中的数据即时、有效的复制到slave中
特征:一个master可以拥有多个slave,一个slave只对应一个master
职责:

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

示意图
在这里插入图片描述

5.主从复制的作用

  • 读写分离:master写、slave读,提高服务器的读写负载能力
  • 负载均衡:基于主从结构,配合读写分离,由slave分担master负载,并根据需求的变化,改变slave的数
    量,通过多个从节点分担数据读取负载,大大提高Redis服务器并发量与数据吞吐量
  • 故障恢复:当master出现问题时,由slave提供服务,实现快速的故障恢复
  • 数据冗余:实现数据热备份,是持久化之外的一种数据冗余方式
  • 高可用基石:基于主从复制,构建哨兵模式与集群,实现Redis的高可用方案

二.主从复制工作流程

1.总述

  • 主从复制过程大体可以分为三个阶段
    • 建立连接阶段(即准备阶段)
    • 数据同步阶段
    • 命令传输阶段

示意图
在这里插入图片描述

2.阶段一:建立连接阶段

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

3.建立连接阶段工作流程

在这里插入图片描述

4.主从连接(slave连接master)

  • 方式一:客户端发送命令(接下来有例子)
 slaveof <masterip> <masterport>
  • 方式二:启动服务器参数
redis-server -slaveof <masterip> <masterport>
  • 方式三:服务器配置(常用,接下来有例子)
slaveof <masterip> <masterport>

5.主从断开连接(slave断开连接master)

  • 客户端发送命令
slaveof no one
  • 说明
    slave断开连接后,不会删除已有数据,只是不再接受master发送的数据

6.授权访问

  • master客户端发送命令设置密码
 requirepass <password>
  • master配置文件设置密码
config set requirepass <password>
config get requirepass 
  • slave客户端发送命令设置密码
 auth <password>
  • slave配置文件设置密码
 masterauth <password>
  • slave启动服务器设置密码
redis-server –a <password>

主从访问方式1例子-------------客户端发送命令

  • 首先创建一个文件夹名为redis主从复制,并在这个文件夹下复制几个redis的压缩包并解压,分别命名如下图
    主从复制文件夹目录示意图

  • 分别对这四个文件夹下的redis.windows.conf修改端口号为 6379、6380、6381和6382,**(这里埋了个坑,后面会填坑)**并为他们设置密码为123456
    设置端口的方式是打开redis.windows.conf文件,找到port后面修改
    在这里插入图片描述
    修改密码示意图
    修改密码示意图

  • 分别在这四个包下创建一个startRedis.bat方便快速打开服务,里面的内容如下

title redis-6381
redis-server redis.windows.conf

直接用记事本创建就行,然后修改尾缀名 title是标题,方便查看端口,分别是6379、6380、6381和6382。

  • 分别双击这四个startRedis.bat文件
  • 首先为6380创建主从连接
  • 打开6380的客户端(在6380的文件夹目录下运行cmd端口输入redis-cli -h 127.0.0.1 -p 6380 -a 123456
    解释下 -h 就是host主机地址 -p 就是port端口号 -a 就是auth password认证
  • 然后执行连接命令
127.0.0.1:6380> slaveof 127.0.0.1 6379
OK

但是发现6380的服务端一直报错,因为6379主机有密码,需要认证,那么如何认证呢?(填坑了)

  • 关闭这四个服务端的服务

  • 分别打开6380、6381和6382的redis.windows.conf文件,随便在那个位置加上masterauth 123456 #指定主机的密码(我加在port后面了)如图
    在这里插入图片描述

  • 然后打开这四个服务端

  • 再次打开6380客户端

  • 执行连接指令

127.0.0.1:6380> slaveof 127.0.0.1 6379
OK
  • 打开6379和6380的服务端,可以看到有提示连接成功的信息
  • 同样的操作对6381和6382进行执行,如果还有更多的从机就继续!

主从访问方式2例子-------------配置文件配置

  • 在刚才配置认证信息的下面加上
slaveof 127.0.0.1 6379

如图
在这里插入图片描述

  • 分别为从机配置(6380、6381和6382)

这样开启之后就不用发送命令配置为从机了,直接启动服务端就行了!!!

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

详细见ppt ppt

8.阶段三:命令传播阶段

详细见ppt ppt

3.主从复制常见问题

详细见ppt ppt

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小吕努力变强

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值