IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> Redis主从复制/读写分离的配置 -> 正文阅读

[大数据]Redis主从复制/读写分离的配置

无论是RDB还是AOF,都会存在数据丢失情况;如果想保证数据不丢失,同时实现高可用,可以使用Master-Slave模式

1.Redis主从复制的作用

  • 读写分离
  • 容灾备份

2.两种配置主从机的方式

  1. 通过命令方式
    在redis中使用slaveof命令指定主机是哪台机器。如果重启服务还要重新执行命令设置主从。
  2. 通过redis.conf方式

3.配置过程

  1. 配从(库)不配主(库)
  2. 从库配置:slaveof 主库ip 端口号 如:(slaveof 127.0.0.1 6379)
  3. 修改配置文件
    • 拷贝多个redis.conf文件,作为配置其他服务的配置文件
    • 开启 daemonize yes
    • 指定端口

4.主从复制分类

4.1 一主二从

配置步骤:

  1. 启动主库(master)./redis-cli -p 9001
  2. 查看主库连接信息 info replication
  3. 启动从库 ./redis-cli -p 9002./redis-cli -p 9001
  4. 查看从库的配置信息
  5. 使用 slaveof 命令配置从库 此处,两个从库都配置为:slaveof 127.0.0.1 9001(端口号可改)
  6. 查看从库配置信息,如下:

在这里插入图片描述
7. 对主库(master)进行写操作,对从库(slave)进行读操作

特点:向主机写数据,就能同步到从机
缺点:如果主机宕机,就不能写数据了

4.2 薪火相传

配置步骤:
与一主二从相似,区别在于配置从库,呈链式

  • 第一个从库使用:slaveof 127.0.0.1 9001
  • 第二个从库使用:slaveof 127.0.0.1 9002

示例:
在这里插入图片描述
准备多个redis服务的环境

  1. 准备三个配置文件,每个配置文件中使用的redis服务端口不同
    在这里插入图片描述
    修改配置文件的端口号,用vi redis-9001.conf命令打开配置文件
    在这里插入图片描述
    用同样的方式,将9002和9003的配置文件进行修改
    在这里插入图片描述
    启动三个服务redis-server,指定相应的配置文件就能启动三个redis服务了
    在这里插入图片描述
  2. 使用redis-cli -p 端口号 能用redis客户端连接指定端口的服务
    用三个客户端分别连接三个服务
    在这里插入图片描述
    在这里插入图片描述

查看主库的配置信息
在这里插入图片描述
配置第一个从机
在这里插入图片描述
配置第二个从机
在这里插入图片描述
验证:
主机写数据
在这里插入图片描述
从机9002读数据
在这里插入图片描述
从机9003读数据
在这里插入图片描述
当主机(9001)宕机后,从机(9002)变为主机,可以向9002写数据

优点:如果主机宕机,则从机变为主机。
缺点:如果有一个从机宕机,则后面的从机就不能同步前面的数据了。

4.3 反客为主

配置步骤

  1. 启动主库(master)
  2. 查看主库的连接信息
  3. 启动从库
  4. 查看从库的配置信息
  5. 使用slaveof 命令配置从库 两个从库都使用:slaveof 127.0.0.1 6379
  6. 查看从库的配置 主库关闭时,第一个从库执行slaveof no one 断开变为主库,第二个从库使用slaveof 127.0.0.1 6380连接修改后的主库
  7. 如果Master再启动时,使用 slaveof连接6380,使它自己变成从库

特点:如果主机宕机,推选一个从机变为主机,其他的从机变为新主机的从机。是手动方式

4.4 哨兵模式

自动的反客为主,当一个主机宕机,由哨兵服务自动推选一个从机作为主机,自动更改各个redis服务的配置文件。

Redis-Sentinel是官方推荐的高可用解决方案,当redis在做master-slave的高可用方案时,假如master宕机了,redis本身(以及其很多客户端)都没有实现自动进行主备切换,而redis-sentinel本身也是独立运行的进程,可以部署在其他与redis可通讯的机器中监控redis集群

Redis 的 Sentinel 系统用于管理多个 Redis 服务器(instance), 该系统执行以下三个任务:

  • 监控(Monitoring): Sentinel 会不断地检查你的主服务器和从服务器是否运作正常。
  • 提醒(Notification): 当被监控的某个 Redis 服务器出现问题时, Sentinel 可以通过 API 向管理员或者其他应用程序发送通知。 自动故障迁移(Automatic failover): 当一个主服务器不能正常工作时, Sentinel
    会开始一次。
  • 自动故障迁移操作, 它会将失效主服务器的其中一个从服务器升级为新的主服务器, 并让失效主服务器的其他从服务器改为复制新的主服务器; 当客户端试图连接失效的主服务器时, 集群也会向客户端返回新主服务器的地址,
    使得集群可以使用新主服务器代替失效服务器。

哨兵模式的搭建步骤

  1. 自定义的/etc目录下新建sentinel.conf文件;
  2. 在此文件中增加 sentinel monitor 被监控数据库名字(自己起名字,例如master6379 127.0.0.1 6379 2 ? 代表多少个从机认为主机下线可以开始投票
  3. 启动哨兵 ? redis-sentinel /etc/sentinel.conf
  4. 启动主机及从机 ? 启动redis后,主机挂掉后,从机上位;

从redis的安装目录拷贝哨兵的配置文件到redis的bin目录中
在这里插入图片描述
修改哨兵的配置文件
在这里插入图片描述
其中最后的1 代表如果有1个哨兵服务连接不上主机(即规定连不上主机的哨兵服务的个数),则要选举新的主机。

5 复制的原理

  • slave启动成功连接到master后会发送一个sync命,Master接到命令启动后台的存盘进程,同时收集所有接收到的用于修改数据集命令,在后台进程执行完毕之后,master将传送整个数据文件到slave,以完成一次完全同步
  • 全量复制:当从机连接到主机时,发送同步请求,主机将数据同步给从机
  • 增量复制:当主机更新数据时,将更新的内容同步给从机要是重新连
  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-08-19 19:12:48  更:2022-08-19 19:13:33 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/20 3:53:18-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码