redis---主从复制及哨兵模式(高可用)
主从复制
主从复制:主从复制是redis实现高可用的基础,哨兵模式和集群都是在主从复制的基础之上实现高可用。
主从负责的工作原理
1、主节点(master) 从节点(slave)组成,数据复制是单向的,只能从主节点到从节点。
主从复制实现数据的多机备份,以及读写分离(主服务器负责写,从服务器只负责读)
缺陷:故障无法自动恢复,需要人工干预,写操作的负载均衡
工作流程图

配置主从复制
主从架构服务器声明:
主:192.168.10.80
从:192.168.10.150
从:192.168.10.151
主:192.168.10.80
*****************************************************************************************
systemctl stop firewalld
setenforce 0
#关闭三台机器的防火墙和安全机制主节点:
vim /etc/redis/6379.conf
70行
修改网段 0.0.0.0
bind 0.0.0.0
137行
daemonize yes
700行
开启aof模式
appendonly yes/etc/init.d/redis_6379 restart*****************************************************************************************
从:192.168.10.150
*****************************************************************************************
从节点1:
vim /etc/redis/6379.conf
70行
修改网段 0.0.0.0
bind 0.0.0.0288行
replicaof <masterip> <masterport>
replicaof 20.0.0.26 6379
#指向主的ip和端口700行
开启aof模式
appendonly yes/etc/init.d/redis_6379 restart
#开启了指向后从节点将变为只读模式*****************************************************************************************
从:192.168.10.151
*****************************************************************************************从节点1:
vim /etc/redis/6379.conf
70行
修改网段 0.0.0.0
bind 0.0.0.0288行
replicaof <masterip> <masterport>
replicaof 20.0.0.26 6379
#指向主的ip和端口700行
开启aof模式
appendonly yes/etc/init.d/redis_6379 restart
#开启了指向后从节点将变为只读模式*****************************************************************************************
哨兵模式:
基于主从模式实现主节点自动切换。
哨兵模式的原理:
哨兵:是一个分布式系统,用于在主从结构之间,对每台redisd的服务进行监控。
主节点出现故障时,从节点通过投票的方式选择一个新的master
哨兵模式至少需要三个节点。
哨兵模式的结构
哨兵节点:监控,不能存储数据
数据节点: 主节点和从节点,都是数据节点。
哨兵监控的是节点,每个哨兵节点每间隔一秒,通过ping命令的方式,检测主从之间的心跳线。
主节点在一定时间内没有回复或回复了错误的消息,这个时候,哨兵就会主观的认为任务节点已经下线,超过半数的哨兵节点任务主节点下线了,这个时候才会认为主节点是客观下线。
哨兵节点通过raft算法(选举算法),每个节点共同投票选举出一个新的master,然后新的master实现主节点转移和故障恢复通知。
主节点的选举过程:
1、已经下线的从节点,不会被选择
2、选择配置文件中,从节点优先级先最高的 replica-priority 100
3、选择一个负责数据最完整的从节点
哨兵监控的是redis服务,图示如下
哨兵配置实验
主:192.168.10.80vim /opt/sentinel.conf
*****************************************************************************************取消注释
17行
protected-mode no21行
port 2637926行
daemonize yes36行
logfile "/var/log/sentinel.log"65行
dir "/var/lib/redis/6379"84行
sentinel monitor mymaster 192.168.10.80 6379 2*****************************************************************************************
从:192.168.10.150vim /opt/sentinel.conf
*****************************************************************************************取消注释
17行
protected-mode no21行
port 2637926行
daemonize yes36行
logfile "/var/log/sentinel.log"65行
dir "/var/lib/redis/6379"84行
sentinel monitor mymaster 192.168.10.80 6379 2*****************************************************************************************
从:192.168.10.151vim /opt/sentinel.conf
*****************************************************************************************取消注释
17行
protected-mode no21行
port 2637926行
daemonize yes36行
logfile "/var/log/sentinel.log"65行
dir "/var/lib/redis/6379"84行
sentinel monitor mymaster 192.168.10.80 6379 2*****************************************************************************************
配置完成后启动哨兵
先启主服务器,再启动从服务器
启动哨兵的命令:redis-sentinel sentinel.conf &
查看哨兵的信息:redis-cli -p 26379 info Sentinel
故障模拟
停止后主的redis服务
/etc/init.d/redis_6379 stop哨兵会在从的里面选出一个从的服务器,将其升为主服务器
新主会继承原主的读写权限
当原主重启后,
旧主将成为从,并将失去写的权限
相关文章:
redis---主从复制及哨兵模式(高可用)
主从复制 主从复制:主从复制是redis实现高可用的基础,哨兵模式和集群都是在主从复制的基础之上实现高可用。 主从负责的工作原理 1、主节点(master) 从节点(slave)组成,数据复制是单向的&a…...
【不同请求方式在springboot中对应的注解】
GET 请求方法:用于获取资源。使用 GetMapping 注解来处理 GET 请求。 示例代码: RestController public class MyController {GetMapping("/resource")public ResponseEntity<String> getResource() {// 处理 GET 请求逻辑} }POST 请求方…...
前端入门(三)Vue生命周期、组件技术、事件总线、
文章目录 Vue生命周期Vue 组件化编程 - .vue文件非单文件组件组件的注意点组件嵌套Vue实例对象和VueComponent实例对象Js对象原型与原型链Vue与VueComponent的重要内置关系 应用单文件组件构建 Vue脚手架 - vue.cli项目文件结构refpropsmixin插件scoped样式 Vue生命周期 1、bef…...
消息推送到微信,快速实现WxPusher
文章目录 前言一、平台二、代码总结 前言 我的博客里也有其他方法,测试了下感觉这个方法还是比较实用。 一、平台 先仔细阅读下平台的使用方法。 平台地址请点击 二、代码 import requests text 孪生网络模型已经训练完成,请注意查阅相关信息。 req…...
【Spring篇】JDK动态代理
目录 什么是代理? 代理模式 动态代理 Java中常用的代理模式 问题来了,如何动态生成代理类? 动态代理底层实现 什么是代理? 顾名思义,代替某个对象去处理一些问题,谓之代理,那么何为动态&a…...
【从零开始实现意图识别】中文对话意图识别详解
前言 意图识别(Intent Recognition)是自然语言处理(NLP)中的一个重要任务,它旨在确定用户输入的语句中所表达的意图或目的。简单来说,意图识别就是对用户的话语进行语义理解,以便更好地回答用户…...
腾讯云点播小程序端上传 SDK
云点播是专门应对上传大视频文件的。 腾讯云点播文档:https://cloud.tencent.com/document/product/266/18177 这个文档比较简单,实在不行,把demo下载下来,一看就明白了,然后再揉一下挪到自己的项目里。完事。 getSign…...
【MATLAB源码-第88期】基于matlab的灰狼优化算法(GWO)的栅格路径规划,输出做短路径图和适应度曲线
操作环境: MATLAB 2022a 1、算法描述 灰狼优化算法(Grey Wolf Optimizer, GWO)是一种模仿灰狼捕食行为的优化算法。灰狼是群居动物,有着严格的社会等级结构。在灰狼群体中,通常有三个等级:首领ÿ…...
electron使用electron-builder macOS windows 打包 签名 更新 上架
0. 前言 0.1 项目工程 看清目录结构,以便您阅读后续内容 0.2 参考资料 (1)macOS开发 证书等配置/打包后导出及上架 https://www.jianshu.com/p/c9c71f2f6eac首先需要为Mac App创建App ID: 填写信息如下—Description为"P…...
autojs项目搭建和入门实践
Auto.js 是一款无需root权限的javascript自动化软件,它可以帮助用户在手机上自动执行各种任务,比如自动填写表单、自动点击按钮、自动切换应用等,并且可以通过图形用户界面来管理和编辑脚本。 软件环境 操作系统:win10 VSCODE&…...
uni-app 跨端开发注意事项
文章目录 前言H5正常但App异常的可能性标题二H5正常但小程序异常的可能性小程序正常但App异常的可能性小程序或App正常,但H5异常的可能性App正常,小程序、H5异常的可能性使用 Vue.js 的注意区别于传统 web 开发的注意H5 开发注意微信小程序开发注意支付宝…...
在 vscode 中的json文件写注释,不报错的解决办法
打开 vscode 的「设置」,搜索:files: associations,然后添加 *.json jsonc最后...
基于uniapp的 电子书小程序——需求整理
前言 想开发一个很简单的 电子书阅读小程序,要怎么做的。下面从功能、数据库设计这一块来说一下。说不一定能从某个角度提供一些思路 开发语言 springcloud uniapp 小程序(vue2)mysql 说明 电子书的主题是电子书,我们在日常…...
Hutool HttpRequest 首次请求正常 第二次被系统拦截
Hutool HttpRequest 首次请求正常 第二次被系统拦截 功能描述异常现象错误代码 异常排查问题跟踪问题总结处理方案最终修改后的代码 功能描述 需要请求第三方某个接口,获取接口中的数据。 异常现象 使用main 方法 通过Hutool 工具类发出请求,获取数据…...
github国内访问小解(windows)
git 下载安装 使用 github 前必须确保电脑上已经安装了 Git,可以从 Git 官方网站去下载。 官方的网站在国内访问会比较慢,这里可以选择国内镜像:https://registry.npmmirror.com/binary.html?pathgit-for-windows/ github 之旅 确认电脑已…...
NX二次开发UF_CSYS_set_wcs_display 函数介绍
文章作者:里海 来源网站:https://blog.csdn.net/WangPaiFeiXingYuan UF_CSYS_set_wcs_display Defined in: uf_csys.h int UF_CSYS_set_wcs_display(int display_status ) overview 概述 Set display of work coordinate system. 展示工作坐标系。 …...
DNS 区域传输 (AXFR)
漏洞描述 docker环境搭建 使用 AXFR 协议的 DNS 区域传输是跨 DNS 服务器复制 DNS 记录的最简单机制。为了避免在多个 DNS 服务器上编辑信息,可以在一台服务器上编辑信息,并使用 AXFR 将信息复制到其他服务器。但是,如果您不保护您的服务器&…...
Ubuntu 安装 JMeter:轻松上手
Apache JMeter 是一个开源的负载测试工具,可以用于测试静态和动态资源,确定服务器的性能和稳定性。在本文中,我们将讨论如何下载和安装 JMeter。 安装 Java(已安装 Java 的此步骤可跳过) 要下载 Java,请遵…...
在工业生产环境下,服务器没有互联网,如何通过代理自己的电脑上互联网?
服务器主机是CentOS7操作系统.,服务器的局域网是10.0.6.x网段。我的笔记本的以太网口的局域网ip是也是10.0.6.x,由于这个10.0.6.x的整个局域网是没有拨号上网的所有无法访问互联网。 但是,如果笔记本脸上wifi,wifi的网段是192.168…...
【brpc学习实践六】backup request场景案例
应用场景 有时为了保证可用性,需要同时访问两路服务,哪个先返回就取哪个。在brpc中,这有多种做法,根据server是否挂在同一个命名服务内有所区别。 当后端server可以挂在一个命名服务内时 Channel开启backup request。这个Channel会先向其中一个server发送请求,如果在Ch…...
Android Wi-Fi 连接失败日志分析
1. Android wifi 关键日志总结 (1) Wi-Fi 断开 (CTRL-EVENT-DISCONNECTED reason3) 日志相关部分: 06-05 10:48:40.987 943 943 I wpa_supplicant: wlan0: CTRL-EVENT-DISCONNECTED bssid44:9b:c1:57:a8:90 reason3 locally_generated1解析: CTR…...
Unity3D中Gfx.WaitForPresent优化方案
前言 在Unity中,Gfx.WaitForPresent占用CPU过高通常表示主线程在等待GPU完成渲染(即CPU被阻塞),这表明存在GPU瓶颈或垂直同步/帧率设置问题。以下是系统的优化方案: 对惹,这里有一个游戏开发交流小组&…...
React第五十七节 Router中RouterProvider使用详解及注意事项
前言 在 React Router v6.4 中,RouterProvider 是一个核心组件,用于提供基于数据路由(data routers)的新型路由方案。 它替代了传统的 <BrowserRouter>,支持更强大的数据加载和操作功能(如 loader 和…...
Docker 运行 Kafka 带 SASL 认证教程
Docker 运行 Kafka 带 SASL 认证教程 Docker 运行 Kafka 带 SASL 认证教程一、说明二、环境准备三、编写 Docker Compose 和 jaas文件docker-compose.yml代码说明:server_jaas.conf 四、启动服务五、验证服务六、连接kafka服务七、总结 Docker 运行 Kafka 带 SASL 认…...
Keil 中设置 STM32 Flash 和 RAM 地址详解
文章目录 Keil 中设置 STM32 Flash 和 RAM 地址详解一、Flash 和 RAM 配置界面(Target 选项卡)1. IROM1(用于配置 Flash)2. IRAM1(用于配置 RAM)二、链接器设置界面(Linker 选项卡)1. 勾选“Use Memory Layout from Target Dialog”2. 查看链接器参数(如果没有勾选上面…...
NLP学习路线图(二十三):长短期记忆网络(LSTM)
在自然语言处理(NLP)领域,我们时刻面临着处理序列数据的核心挑战。无论是理解句子的结构、分析文本的情感,还是实现语言的翻译,都需要模型能够捕捉词语之间依时序产生的复杂依赖关系。传统的神经网络结构在处理这种序列依赖时显得力不从心,而循环神经网络(RNN) 曾被视为…...
c#开发AI模型对话
AI模型 前面已经介绍了一般AI模型本地部署,直接调用现成的模型数据。这里主要讲述讲接口集成到我们自己的程序中使用方式。 微软提供了ML.NET来开发和使用AI模型,但是目前国内可能使用不多,至少实践例子很少看见。开发训练模型就不介绍了&am…...
【HTTP三个基础问题】
面试官您好!HTTP是超文本传输协议,是互联网上客户端和服务器之间传输超文本数据(比如文字、图片、音频、视频等)的核心协议,当前互联网应用最广泛的版本是HTTP1.1,它基于经典的C/S模型,也就是客…...
莫兰迪高级灰总结计划简约商务通用PPT模版
莫兰迪高级灰总结计划简约商务通用PPT模版,莫兰迪调色板清新简约工作汇报PPT模版,莫兰迪时尚风极简设计PPT模版,大学生毕业论文答辩PPT模版,莫兰迪配色总结计划简约商务通用PPT模版,莫兰迪商务汇报PPT模版,…...
【Nginx】使用 Nginx+Lua 实现基于 IP 的访问频率限制
使用 NginxLua 实现基于 IP 的访问频率限制 在高并发场景下,限制某个 IP 的访问频率是非常重要的,可以有效防止恶意攻击或错误配置导致的服务宕机。以下是一个详细的实现方案,使用 Nginx 和 Lua 脚本结合 Redis 来实现基于 IP 的访问频率限制…...
