3、redis的高可用

news2025/1/3 4:46:04

主从复制

主从复制:这是redis高可用的基础。哨兵模式和集群都是建立在此基础之上。

主从模式和数据库的主从模式是一样的,主负责写入,然后把写入的数据同步到从,从节点只能读不能写。read  only。

不能做高可用的切换,主节点出现故障,没有替换的主节点,所有的写入操作都将失败。

主从复制工作模式

  1. 当配置完整之后,从节点启动,会向主节点发送一个sync command,请求同步连接
  2. master都会开启一个后台的进程将主节点的数据保存到数据文件中
  3. 主节点把数据同步给从节点从节点先把数据保存到硬盘,再加载到内存

主从复制实操

我们先定义主从复制架构如下

主服务器:mysql1,192.168.254.31

从服务器:tomcat1,192.168.254.21

从服务器:zw4,192.168.254.14

1、配置主服务器的主配置文件 /etc/redis/redis.conf,修改如下配置

  • #关闭监听地址,表示同意任何

  • #关闭保护模式

  • #启用后台运行

  • #启用AOF二进制日志文件

2、配置两台从服务器的主配置文件 /etc/redis/redis.conf,修改如下配置

  • #指定从节点复制主节点192.168.254.31的数据

3、在主服务器上打开redis的日志文件,发现两台从服务器已经关联上了我们主服务器

这时候我们主从复制模式就成功了,两台从服务器会变成只读模式。

哨兵模式

在主从模式的基础之上,引入了故障的切换模式,一般涉及高可用模式的服务器的数量是奇数。

哨兵也是一个分布式的集群结构,对主从结构当中的每台服务器进行监控,当出现故障时,通过投

票的机制选择一个新的master。被选举出的新的master会将所有的主从节点重新连接到自己,从节

点会自动同步到主,自动变成只读模式。

哨兵模式工作模式

1、主从之间,互相有一个心跳的检测

2、当主节点宕机,从节点都会收到主的宕机的信息

3、两个从节点,自动进行投票,选择一个新的主

4、从节点会自动加入新主的主从模式。

哨兵模式实操

哨兵模式是在主从复制基础上,我们这边配置哨兵模式在上面主从复制的基础上进行。

首先在配置哨兵模式的第一次的时候,我们是人工的定义好主。这里定mysql1为主。

1、下载redis哨兵软件,apt -y install redis-sentinel

2、三台服务器都配置redis哨兵的主配置文件,/etc/redis/sentinel.conf,具体修改如下

  • 人工定义主的服务器。2的含义:当主节点发送故障,必须要有两个从节点同意才能进行主节点的故障切换。
  • 判断服务器服务器宕机的时间周期30000毫秒,30秒
  • 故障节点的最大超时时间18000毫秒,18秒

3、重启服务后,在主服务器上打开redis哨兵的日志文件,发现两台从服务器已经关联上了我们主服务器

systemctl restart redis-sentinel.service

tail -f /var/log/redis/redis-sentinel.log

4、这时候我们关闭掉主服务器的redis服务,显示哨兵模式的主推过选举移到了从1上

我们进入到原来主的redis主配置文件里,发现在最下面添加了一行,显示192.168.254.21从1现在是主

这时候我们哨兵+主从模式就成功了,192.168.254.21变成了主服务器,另外两台服务器变成了只读模式。

集群

redis-cluster,集群是由多个节点组成,redis的数据分布在节点中,集群的当中每个节点又分主和从。主负责写,从负责读。

集群工作模式和槽位

0-16383个hash的槽位:

A:0-5460槽位

B:5461-10922槽位

C:10923-16383槽位

集群实操

我们先定义主从复制架构如下,集群需要至少6台服务器

服务器1:mysql1,192.168.254.31

服务器2:mysql2,192.168.254.32

服务器3:mysql3,192.168.254.33

服务器4:zw4,192.168.254.14

服务器5:zw5,192.168.254.15

服务器6:zw6,192.168.254.16

1、6台服务器都要配置redis主配置文件,具体修改如下

  • #开启集群功能
  • #集群的配置文件名称

  • #设置集群的超时时间

改完配置后,重启redis服务

2、配置主从节点,具体操作如下,这里我们在192.168.254.31上面打的命令,后面6台服务器顺序无所谓,并不是谁在前就是主,随机的。

redis-cli  -h 192.168.254.31 --cluster create 192.168.254.31:6379 192.168.254.32:6379 192.168.254.33:6379 192.168.254.14:6379 192.168.254.15:6379 192.168.254.16:6379 --cluster-replicas 1

  • cluster-replicas 1:表示每个主节点对于一个从节点

这里显示,31、32、33是主节点,14、15、16是从节点;并且16384个hash槽位全部分配完成。

3、当我们发现在192.168.254.31上创建key键值会报错,注意这里并不是报错,还是提示

  • 表示客户端尝试将这个数值保存到槽位号10357的位置,实际槽位在32这个主机

我们在31上创建的键,主从复制到15上面,证明主机31和15是主从关系。与其他两个主从互补影响。

可见:redis的集群模式,只是满足高可用,不能实现数据同步。

           对数据同步要求很高的场景,选择redis的主从和哨兵模式。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【架构-38】如何选择通信协议和数据格式

一、通信协议选择 不同的协议适用于不同的应用场景,关键在于数据传输的需求,如:实时性、带宽、可靠性等。下面是几种常见通信协议的适用场景: WebSocket 适用场景:实时、双向数据传输、低延迟、持久连接 特点&#x…

SpringCloudAlibaba 技术栈—Sentinel

1、什么是sentinel? Sentinel是一个用于微服务架构的流量管理和控制系统,它通过限制和控制进入系统的流量,来保护系统免受过载和故障的影响,确保服务的稳定性。简而言之,它就是一个帮助微服务在高负载情况下也能稳定运行的工具。…

初学STM32 ---高级定时器互补输出带死区控制

互补输出,还带死区控制,什么意思? 带死区控制的互补输出应用之H桥 捕获/比较通道的输出部分(通道1至3) 死区时间计算 举个栗子(F1为例):DTG[7:0]250,250即二进制&#x…

RoboMIND:多体现基准 机器人操纵的智能规范数据

我们介绍了 RoboMIND,这是机器人操纵的多体现智能规范数据的基准,包括 4 个实施例、279 个不同任务和 61 个不同对象类别的 55k 真实世界演示轨迹。 工业机器人企业 埃斯顿自动化 | 埃夫特机器人 | 节卡机器人 | 珞石机器人 | 法奥机器人 | 非夕科技 | C…

Hadoop HA安装配置(容器环境),大数据职业技能竞赛模块A平台搭建,jdk+zookeeper+hadoop HA

HA概述 (1) 所谓HA(High Availablity),即高可用(7*24小时不中断服务)。 (2) 实现高可用最关键的策略是消除单点故障,HA严格来说应该分为各个组件的HA机制,H…

国产文本编辑器EverEdit - 如何让输出窗口的日志具有双击跳转到文件指定行的功能

1 开发参考:编写脚本时如何向输出窗口打印可跳转到文件位置的日志 1.1 应用场景 编写脚本时,有时对文本进行分析,需要将提示信息打印到输出窗口,同时希望将文本的行、列信息也打印在日志中, 最好是双击日志信息可以跳…

《云原生安全攻防》-- K8s安全配置:CIS安全基准与kube-bench工具

在本节课程中,我们来了解一下K8s集群的安全配置,通过对CIS安全基准和kube-bench工具的介绍,可以快速发现K8s集群中不符合最佳实践的配置项,及时进行修复,从而来提高集群的安全性。 在这个课程中,我们将学习…

3、redis的集群模式

主从模式 哨兵模式 集群 主从模式:这是redis高可用的基础,哨兵模式和集群都是建立在此基础之上。 主从模式和数据库的主从模式是一样的,主负责写入,然后把写入的数据同步到从, 从节点只能读不能写,rea…

计算机图形学知识点汇总

一、计算机图形学定义与内容 1.图形 图形分为“图”和“形”两部分。 其中,“形”指形体或形状,存在于客观世界和虚拟世界,它的本质是“表示”;而图则是包含几何信息与属性信息的点、线等基本图元构成的画面,用于表达…

自动化测试模型(一)

8.8.1 自动化测试模型概述 在自动化测试运用于测试工作的过程中,测试人员根据不同自动化测试工具、测试框架等所进行的测试活动进行了抽象,总结出线性测试、模块化驱动测试、数据驱动测试和关键字驱动测试这4种自动化测试模型。 线性测试 首先&#…

医疗数仓数据仓库设计

医疗数仓数据仓库设计 数据仓库构建流程数据调研明确数据域构建业务总线矩阵明确统计指标交易主题医生主题用户主题评价主题 维度模型设计汇总模型设计 数据仓库构建流程 数据仓库分层规划 优秀可靠的数仓体系,需要良好的数据分层结构。合理的分层,能够…

Go-知识 注释

Go-知识 注释 行注释块注释包注释结构体&接口注释函数&方法注释废弃注释文档 在 go 语言中注释有两种,行注释和块注释 行注释 使用双斜线 // 开始,一般后面紧跟一个空格。行注释是Go语言中最常见的注释形式,在标准包中,…

1230作业

思维导图 作业 将广播发送和接收端实现一遍&#xff0c;完成一个发送端发送信息&#xff0c;对应多个接收端接收 自实验 //广播发送端 #include <myhead.h> #define G_PORT 8765 #define G_IP "192.168.124.255" int main(int argc, const char *argv[]) {//…

U盘格式化工具合集:6个免费的U盘格式化工具

在日常使用中&#xff0c;U盘可能会因为文件系统不兼容、数据损坏或使用需求发生改变而需要进行格式化。一个合适的格式化工具不仅可以清理存储空间&#xff0c;还能解决部分存储问题。本文为大家精选了6款免费的U盘格式化工具&#xff0c;并详细介绍它们的功能、使用方法、优缺…

Windows系统使用Koodo Reader轻松搭建在线私人图书馆远程看书

文章目录 前言1. Koodo Reader 功能特点1.1 开源免费1.2 支持众多格式1.3 多平台兼容1.4 多端数据备份同步1.5 多功能阅读体验1.6 界面简洁直观 2. Koodo Reader安装流程2.1 安装Git2.2 安装Node.js2.3 下载koodo reader 3. 安装Cpolar内网穿透3.1 配置公网地址3.2 配置固定公网…

开关电源调试思维导图

开关电源辐射发射问题调试一直以来都是工程师们非常头疼的事情&#xff0c;也不知道如何下手&#xff0c;今天就通过几个思维导图把开关电源辐射发射问题调试的思路呈现给广大工程师们&#xff0c;希望能照亮大家辐射调试的黑暗道路。 01、反激电路辐射发射问题调试思维导图 0…

【brainpan靶场渗透】

文章目录 一、基础信息 二、信息收集 三、反弹shell 四、提权 一、基础信息 Kali IP&#xff1a;192.168.20.146 靶机 IP&#xff1a;192.168.20.155 二、信息收集 似乎开放了9999&#xff0c;10000端口&#xff0c;访问页面没有太多内容&#xff0c;扫描一下目录 dirs…

使用MFC编写一个paddleclas预测软件

目录 写作目的 环境准备 下载编译环境 解压预编译库 准备训练文件 模型文件 图像文件 路径整理 准备预测代码 创建预测应用 新建mfc应用 拷贝文档 配置环境 界面布局 添加回cpp文件 修改函数 报错1解决 报错2未解决 修改infer代码 修改MFCPaddleClasDlg.cp…

html+css+js网页设计 美食 美食家6个页面

htmlcssjs网页设计 美食 美食家6个页面 网页作品代码简单&#xff0c;可使用任意HTML辑软件&#xff08;如&#xff1a;Dreamweaver、HBuilder、Vscode 、Sublime 、Webstorm、Text 、Notepad 等任意html编辑软件进行运行及修改编辑等操作&#xff09;。 获取源码 1&#xf…

【第四期书生大模型实战营基础岛】L1G5000——XTuner 微调个人小助手认知任务

基础任务————使用 XTuner 微调 InternLM2-Chat-7B 实现自己的小助手认知&#xff0c;如下图所示&#xff08;图中的尖米需替换成自己的昵称&#xff09;&#xff0c;记录复现过程并截图。 环境配置与数据准备 步骤 0. 使用 conda 先构建一个 Python-3.10 的虚拟环境 cd …