【Redis】集群配置(主从复制 哨兵搭建)

文章目录

    • 集群配置
      • 主从复制
      • 哨兵搭建

集群配置

Redis 集群提供了三种分布式方案:

主从模式:一个主节点和一个或多个从节点,主节点负责写操作,从节点负责读操作,实现读写分离,分担主节点的压力。

哨兵模式:哨兵系统用于监控多个Redis服务器,当主服务器出现问题时,哨兵会自动进行故障迁移,选举一个新的主服务器。

集群模式:Redis Cluster 通过将键空间分割为16384个槽位,每个主节点负责一部分槽位,实现数据的分布式存储和高可用性。

主从复制

主从复制是将一台 Redis 服务器的数据复制到其他 Redis 服务器,前者叫 master/leader 主节点,后者称为从节点 slave/follower,数据库的复制是单向的,只能由主–>从,master 以写为主,slave 以读为主,利用主从复制实现读写分离,最低配的主从复制也需要一主二从。

主从复制中,从节点只能进行读操作,如果在从节点执行写命令则会报错,主节点可以执行读写操作,但我们往往规定主节点只能进行写操作,这样也是符合了读写分离;默认情况下每个 Redis 服务器都为主节点,即 master。

主从复制的作用

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

在这里插入图片描述

(一主二从)

1、分别命名 Redis6379、Redis6380、Redis6381,以 Redis6379 为主机,Redis6380、Redis6381为从机

在这里插入图片描述

2、修改主机和从机的 redis.windows.conf 文件

# Accept connections on the specified port, default is 6379.
# If port 0 is specified Redis will not listen on a TCP socket.
port 6379

分别在 41 行左右修改端口为 port 6379port 6380port 6381

# The filename where to dump the DB
dbfilename dump.rdb

分别在 172 行左右修改 RDB 文件为 dump.rdbdump6380.rdbdump6380.rdb(要保证这三个文件名不一样)

3、修改从机的 redis.windows.conf 文件

# slaveof <masterip> <masterport>slaveof 127.0.0.1 6379# masterauth <master-password>masterauth "123456"

分别在 200 行左右添加主机 ip、端口和密码。两个从机都要添加。

4、启动主机

在这里插入图片描述

再启动从机

在这里插入图片描述

该图中上面的窗口是主机 6379 的,下面的窗口是从机 6380 的。

在这里插入图片描述

该图中上面的窗口是主机 6379 的,下面的窗口是从机 6381 的。

打开 Another Redis Desktop Manager.exe 工具。

分别连接 6380 和 6381,记得输入密码。因为 6380 和 6381 都是复制的 6379, 所以密码都是 123456(该设置在 redis.windows.conf 文件大概 389 行:requirepass 123456

在这里插入图片描述

使用命令:info replication 获取复制状态信息。

在这里插入图片描述

主机显示为 role:master,表示它是主节点。还会列出所有连接的从机及其状态、端口等信息。

在这里插入图片描述

从机显示为 role:slave,表示它是从节点。还会列出主机的IP地址、端口号以及与主机的连接状态等。

复制的过程原理

  1. 当从库和主库建立 MS 关系后,会向主数据库发送 SYNC 命令;
  2. 主库接收到 SYNC 命令后会开始在后台保存快照(RDB 持久化过程),并将期间接收到的写命令缓存起来;
  3. 当快照完成后,主 Redis 会将快照文件和所有缓存的写命令发送给从 Redis;
  4. 从 Redis 接收到后,会载入快照文件并且执行收到的缓存的命令;
  5. 之后,主 Redis 每当接收到写命令时就会将命令发送从 Redis,从而保证数据的一致;

哨兵搭建

哨兵的作用就是对 Redis 的系统的运行情况的监控,它是一个独立进程。它的功能有两个:

  1. 监控主数据库和从数据库是否运行正常;
  2. 主数据出现故障后自动将从数据库转化为主数据库;

哨兵模式(Sentinel)是 Redis 数据库提供的一种高可用性解决方案,旨在自动处理主节点故障转移的过程。在哨兵模式被引入之前,Redis 的主从复制架构在遇到主服务器(master)宕机的情况下,需要人工介入来进行故障恢复。通过在从服务器上执行 SLAVEOF NO ONE 命令来实现将从服务器(slave)提升为新的主服务器。

然而,这种手动的主从切换过程存在明显缺陷。Redis 从2.8版本开始正式引入了哨兵(Sentinel)系统。哨兵是一个独立运行的监控进程,其工作原理是通过定期向 Redis 服务器发送命令并监听响应,以此来监控多个 Redis 实例的状态。

单个哨兵的架构
在这里插入图片描述

多个哨兵的架构

在这里插入图片描述

多个哨兵不仅同时监控主从数据库,而且哨兵之间互为监控。

(一主二从三哨兵)

1、在每个 Redis 文件夹下创建 sentinel.conf 文件配置哨兵信息

# 哨兵sentinel实例运行的端口 默认26379
port 26379# 本地ip
bind 127.0.0.1# 哨兵监听的主服务器 后面的1表示主机挂掉以后进行投票,只需要2票就可以从机变主机
sentinel monitor mymaster 127.0.0.1 6379 2# 设置未得到主机响应时间,此处代表5秒未响应视为宕机
sentinel down-after-milliseconds mymaster 5000# 设置等待主机活动时间,此处代表5秒主机未活动,则重新选举主机
sentinel failover-timeout mymaster 5000# 设置主机的密码(无密码可以省略)
sentinel auth-pass mymaster 123456
#设置重新选举主机后,同一时间同步数据的从机数量,此处代表重新选举主机后,每次2台从机同步主机数据,直到所从
#机同步结束
sentinel config-epoch mymaster 2# 执行故障转移时, 最多有2个从服务器同时对新的主服务器进行同步
sentinel leader-epoch mymaster 2

分别修改三个 Redis 的哨兵端口为 port 26379port 26380port 26381,其余不用修改。

2、在每个 Redis 文件夹下创建 startup_sentinel.bat 文件用于运行 sentinel.conf

记事本打开 bat 文件文件,写入内容 redis-server.exe sentinel.conf --sentinel

运行 Redis 三个服务,并使用 info replication 命令检查是否主从复制。

哨兵测试

从机宕机

使用命令 shutdown 关闭一个从机(或直接关闭)

6380 宕机

[12752] 17 Dec 16:39:00.416 # +sdown slave 127.0.0.1:6380 127.0.0.1 6380 @ mymaster 127.0.0.1 6379
[12752] 17 Dec 16:39:05.806 # +sdown sentinel 127.0.0.1:26379 127.0.0.1 26379 @ mymaster 127.0.0.1 6379

6380 启动

[22196] 17 Dec 16:39:06.085 # +sdown sentinel 127.0.0.1:26379 127.0.0.1 26379 @ mymaster 127.0.0.1 6379
[22196] 17 Dec 16:40:41.190 * +reboot slave 127.0.0.1:6380 127.0.0.1 6380 @ mymaster 127.0.0.1 6379
[22196] 17 Dec 16:40:41.267 # -sdown slave 127.0.0.1:6380 127.0.0.1 6380 @ mymaster 127.0.0.1 6379

主机宕机

使用命令 shutdown 关闭一个从机(或直接关闭)

会发现哨兵在连接几次 63790 失败后,选取 6380 做为主机。redis.windows.conf 文件中的配置信息会自动改变。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/500948.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

设计模式の状态策略责任链模式

文章目录 前言一、状态模式二、策略模式三、责任链模式 前言 本篇是关于设计模式中的状态模式、策略模式、以及责任链模式的学习笔记。 一、状态模式 状态模式是一种行为设计模式&#xff0c;核心思想在于&#xff0c;使某个对象在其内部状态改变时&#xff0c;改变该对象的行为…

【设计模式】 基本原则、设计模式分类

设计模式 设计模式是软件工程中的一种通用术语&#xff0c;指的是针对特定问题的经过实践验证的解决方案。设计模式并不是最终的代码实现&#xff0c;而是描述了如何解决某一类问题的思路和方法。 如果熟悉了设计模式&#xff0c;当遇到类似的场景&#xff0c;我们可以快速地…

二、github基础

Github基础 备用github.com网站一、用户界面-Overview&#xff08;概览&#xff09;1用户信息2 导航栏3 热门仓库4 贡献设置5贡献活动6搜索和筛选7自定义收藏8贡献统计9最近活动10其他链接 二、用户界面-Repositories&#xff08;仓库&#xff09;1 libusb_stm322 savedata3 Fi…

nature reviews genetics | 需要更多的针对不同种族的癌症基因组图谱研究,促进精准治疗和维护治疗公平权益

–https://doi.org/10.1038/s41576-024-00796-w Genomic landscape of cancer in racially and ethnically diverse populations 研究团队和单位 Ulrike Peters–Public Health Sciences Division, Fred Hutchinson Cancer Center Claire E. Thomas–Public Health Scienc…

选择器(结构伪类选择器,伪元素选择器),PxCook软件,盒子模型

结构为类选择器 伪元素选择器 PxCook 盒子模型 (内外边距&#xff0c;边框&#xff09; 内外边距合并&#xff0c;塌陷问题 元素溢出 圆角 阴影: 模糊半径&#xff1a;越大越模糊&#xff0c;也就是越柔和 案例一&#xff1a;产品卡片 <!DOCTYPE html> <html lang&q…

vue2+echarts实现水球+外层动效

实现效果 安装echarts-liquidfill 需要安装echarts-liquidfill&#xff01;&#xff01;&#xff01;需要安装echarts-liquidfill&#xff01;&#xff01;&#xff01;需要安装echarts-liquidfill&#xff01;&#xff01;&#xff01; 安装命令 npm install echarts-liqui…

OpenStack的核心组件、主要特点和使用场景

OpenStack 是一个开源的云计算平台&#xff0c;主要用于构建和管理公共及私有云环境。它由多个模块组成&#xff0c;提供虚拟化资源管理、存储管理、网络配置等功能&#xff0c;旨在为数据中心提供自动化的、灵活的云基础设施服务。OpenStack最初由NASA和Rackspace共同开发&…

Java 代码编译和解析方法信息

使用 javassist 可以操作字节码文件&#xff0c;我分享一下一个简单的编译和类方法解析代码。 什么是 Javassist&#xff1f; Javassist 是一个强大的字节码操作工具&#xff0c;它提供了在运行时编辑 Java 字节码的能力。通过Javassist&#xff0c;开发人员可以动态地创建和…

SpringCloud源码分析-Lettue Redis

redis connection异步发送 底层是nio channel

ELK入门教程(超详细)

什么是ELK&#xff1f; ELK是Elasticsearch、Logstash、Kibana三大开源框架首字母大写简称(后来出现的filebeat属于beats家族中的一员&#xff0c;可以用来替代logstash的数据收集功能&#xff0c;比较轻量级)&#xff0c;也被称为Elastic Stack。 Filebeat Filebeat是用于转…

Wireshark和科来网络分析系统

Wireshark 是一款功能强大的网络协议分析工具&#xff0c;主要用于捕获和分析网络流量&#xff0c;帮助用户排查网络问题、进行安全分析和学习网络协议。以下是 Wireshark 的基础使用指南&#xff1a; 1. 安装 Wireshark 访问 Wireshark 官网 下载并安装适合你操作系统的版本…

机器学习之逻辑回归算法、数据标准化处理及数据预测和数据的分类结果报告

逻辑回归算法、数据标准化处理及数据预测和数据的分类结果报告 目录 逻辑回归算法、数据标准化处理及数据预测和数据的分类结果报告1 逻辑回归算法1.1 概念理解1.2 算法导入1.3 算法优缺点 2 LogisticRegression理解2.1查看参数定义2.2 参数理解2.3 方法2.4基本格式 3 数据标准…

家政上门小程序如何创建?家政服务怎么能少了小程序帮手

在如今这个“忙到没时间打扫”的时代&#xff0c;家政服务变得越来越受欢迎。为了提高效率、减少沟通成本&#xff0c;很多家政公司都已经开始借助小程序的力量。那么&#xff0c;家政上门小程序到底该如何创建呢?小程序又是如何帮助家政服务更好地满足客户需求的呢?本文将为…

机器学习-感知机-神经网络-激活函数-正反向传播-梯度消失-dropout

文章目录 感知机工作流程 神经网络区别各种各样的神经网络 激活函数激活函数类型Sigmoid 函数ReLU函数Leaky ReLU 函数Tanh 函数 正向传播反向传播梯度消失(gradient vanish)如何解决 Dropout使用 PyTorch实战神经网络算法(手写MNIST数字识别)viewsoftmax和log-softmaxcross-en…

生态碳汇涡度相关监测与通量数据分析实践技术应用

1.以涡度通量塔的高频观测数据为例&#xff0c;基于MATLAB开展上机操作&#xff1a; 2.涡度通量观测基本概况&#xff1a;观测技术方法、数据获取与预处理等 3.涡度通量数据质量控制&#xff1a;通量数据异常值识别与剔除等 4.涡度通量数据缺失插补&#xff1a;结合气象数据…

Win11电脑Cursor默认打开markdown文件,如何修改markdown文件默认打开方式为Typora?

问题 Windows 11电脑上最近新装了cursor&#xff0c;导致我的markdown文件的默认打开方式被自动设置为cursor&#xff0c;那么我想将默认打开方式设置为Typora&#xff0c;应该怎么做呢&#xff1f; 解决方法 选中一个markdown文件&#xff0c;右击&#xff0c;选择属性。 …

基本算法——回归

目录 创建工程 加载数据 分析属性 创建与评估回归模型 线性回归 回归树 评估 完整代码 结论 本节将通过分析能源效率数据集&#xff08;Tsanas和Xifara&#xff0c;2012&#xff09;学习基本的回归算法。我们将基 于建筑的结构特点&#xff08;比如表面、墙体与屋顶面…

PP模块部分BAPI函数

工艺路线 BAPI_ROUTING_CREATE 创建工艺路线 BAPI_ROUTING_EXISTENCE_CHECK 检查工艺路线是否存在 参考操作集 BAPI_REFSETOFOPERATIONS_CREATE 创建参考操作集 BAPI_REFSETOFOPR_EXISTENCE_CHK 检查参考操作集是否存在 计划订单 BAPI_PLANNEDORDER_CREATE 创建计划订单 BAPI…

【SpringBoot】多数据源事务卡死@DSTransactional,当某一个数据库挂掉了,系统卡死问题解决

记录最近发生并解决的一个问题 原因 在一个事务内&#xff0c;操作多个数据库&#xff0c;当其中一个数据库挂掉后&#xff0c;默认无限重连&#xff0c;导致事务无法正常结束&#xff0c;导致系统卡死 解决 将无限重连改成有限次数即可 datasource:db1:driver-class-name…

迅为RK3568开发板编译Android12源码包-设置屏幕配置

在源码编译之前首先要确定自己想要使用的屏幕并修改源码&#xff0c;在编译镜像&#xff0c;烧写镜像。如下图所示&#xff1a; 第一步&#xff1a;确定要使用的屏幕种类&#xff0c;屏幕种类选择如下所示&#xff1a; iTOP-3568 开发板支持以下种类屏幕&#xff1a; 迅为 LV…