最新Redis7哨兵模式(保姆级教学)
一定一定要把云服务器的防火墙打开一定要!!!!!!!!!否则不成功!!!!!!!!!
哨兵是什么
相当于吹哨人,吹哨人巡查监控后台master主机是否故障,如果故障了根据投票数自动将某一个库,转换为新主库,继续对外服务
哨兵的作用
- 主从监控:监控主从redis库是否正常运行
- 消息通知:哨兵可以将故障转移的结果发送给客户端
- 故障转移:如果Master异常,则会进行主从切换,将其中一个Slave作为新的Master
- 配置中心:客户端通过连接哨兵来获得当前Redis服务的主节点地址
案例演示
前期准备
三个哨兵:自动监控和维护集群,不存放数据,只是吹哨人
一主二从:用于数据读取和存放
由于个人经费有限,只有三台云服务器演示,这里我就将三台哨兵配置到6379这个服务器上
案例步骤
1、/myredis目录下新建或者拷贝sentinel.conf文件
2、配置文件修改
首先我们拷贝三份不同端口的代码:
我们进入每个代码使用vim filename
将内容删除复制以下内容:
bind 0.0.0.0
daemonize yes
protected-mode no
port 26379
logfile "/myredis/sentinel26379.log"
pidfile /var/run/redis-sentinel26379.pid
dir /myredis
sentinel monitor 主机名 62.234.60.208 6379 2
sentinel auth-pass 主机名 密码
解释一下最后两个配置文件作用:
sentinel monitor <master-name><redis-port> <quorum> 设置要监控的master服务器,quorum表示最少有几个哨兵认可客观下线同意故障迁移的法定票数
master设置了密码,连接master服务的密码
先启动一主二从三个redis实例,则是正常的主从复制
这里我们不能忘记之前主机的配置,6379后续可能会变成从机,需要设置访问新主机的密码, 请设置masterauth项访问密码你其他机器所设置密码
master主机配置文件汇总
哨兵 启动
先启动三个哨兵,完成监控 redis-sentinel sentinel26379.conf --sentine
启动三个哨兵之哦胡在测试一侧主从复制
原有的master挂了
我们这里手动关闭6379服务器,模拟master挂了
此时我们可以等待一下,哨兵投票
此时我们可以看出,当主机down之后从机6381上位
我们看一下sentinel26379.log的日志
这是一段Redis Sentinel的日志,它记录了Redis服务器和Sentinel的一些状态变化。以下是一些关键事件的解释:
sdown
(主观下线):Sentinel认为某个服务器无法访问,可能是网络问题或者服务器崩溃。Redis is starting
:Redis服务器正在启动。Warning: Could not create server TCP listening socket 0.0.0.0:26379: bind: Address already in use
:Redis Sentinel试图在端口26379上启动,但是这个端口已经被其他进程使用了。+new-epoch
:Sentinel开始了新的纪元,这通常意味着主服务器失效,Sentinel正在选举新的主服务器。+vote-for-leader
:Sentinel投票选举新的领导者。+switch-master
:Sentinel已经将主服务器从一个服务器切换到另一个服务器。+slave
:Sentinel识别到一个新的从服务器。
以下是这段Redis Sentinel日志中每一行的解释:
-
4346:X 30 Dec 2023 20:25:14.957 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
:Redis服务器(PID为4346)正在启动。 -
4346:X 30 Dec 2023 20:25:14.957 # Redis version=7.0.14, bits=64, commit=00000000, modified=0, pid=4346, just started
:显示Redis服务器的版本信息,位数,提交哈希,修改状态,进程ID和启动状态。 -
4346:X 30 Dec 2023 20:25:14.957 # Configuration loaded
:Redis服务器已成功加载配置文件。 -
4346:X 30 Dec 2023 20:25:14.958 * monotonic clock: POSIX clock_gettime
:Redis服务器正在使用POSIX的clock_gettime函数作为其单调时钟源。 -
4346:X 30 Dec 2023 20:25:14.958 # Warning: Could not create server TCP listening socket 0.0.0.0:26379: bind: Address already in use
:Redis服务器试图在端口26379上创建一个TCP监听套接字,但是这个端口已经被其他进程使用了。 -
4346:X 30 Dec 2023 20:25:14.958 # Failed listening on port 26379 (TCP), aborting.
:由于无法在端口26379上监听,Redis服务器正在终止。 -
26979:X 30 Dec 2023 20:25:58.361 # +sdown master mymaster 62.234.60.208 6379
:Sentinel进程(PID为26979)报告主服务器(别名为mymaster,IP地址为62.234.60.208,端口号为6379)已经主观下线。 -
26979:X 30 Dec 2023 20:25:58.487 * Sentinel new configuration saved on disk
:Sentinel进程已经将新的配置保存到磁盘上。 -
26979:X 30 Dec 2023 20:25:58.487 # +new-epoch 893
:Sentinel进程已经开始了新的纪元(Epoch),编号为893。 -
26979:X 30 Dec 2023 20:25:58.493 * Sentinel new configuration saved on disk
:Sentinel进程已经将新的配置保存到磁盘上。 -
26979:X 30 Dec 2023 20:25:58.494 # +vote-for-leader a380684d19db383c3e7110c9aee4af069db632d2 893
:Sentinel进程正在为领导者(ID为a380684d19db383c3e7110c9aee4af069db632d2)投票,纪元编号为893。 -
26979:X 30 Dec 2023 20:25:59.395 # +config-update-from sentinel a380684d19db383c3e7110c9aee4af069db632d2 62.234.60.208 26381 @ mymaster 62.234.60.208 6379
:Sentinel进程已经从另一个Sentinel(ID为a380684d19db383c3e7110c9aee4af069db632d2,IP地址为62.234.60.208,端口号为26381)那里更新了配置。 -
26979:X 30 Dec 2023 20:25:59.395 # +switch-master mymaster 62.234.60.208 6379 121.43.60.247 6381
:Sentinel进程已经将主服务器从62.234.60.208:6379切换到了121.43.60.247:6381。 -
26979:X 30 Dec 2023 20:25:59.395 * +slave slave 118.31.6.132:6380 118.31.6.132 6380 @ mymaster 121.43.60.247 6381
:Sentinel进程识别到一个新的从服务器(IP地址为118.31.6.132,端口号为6380)。 -
26979:X 30 Dec 2023 20:25:59.395 * +slave slave 62.234.60.208:6379 62.234.60.208 6379 @ mymaster 121.43.60.247 6381
:Sentinel进程识别到一个新的从服务器(IP地址为62.234.60.208,端口号为6379)。 -
26979:X 30 Dec 2023 20:25:59.400 * Sentinel new configuration saved on disk
:Sentinel进程已经将新的配置保存到磁盘上。
哨兵运行流程和选举原理
当一个主从配置中的master失效之后,sentinel可以选举出的一个新的master,用于自动接替原master的工作,主从配置中的其他redis服务器自动只想新的masterr同步数据,一般建议sentinel采取奇数台,防止某一台sentinel物权法链接到master导致误切换
运行流程
三个哨兵监控一主二从运行中->主管下线->客观下线->选出领导者哨兵->由领导者哨兵确定新master
主观下线
SDown(主观下线):单个Sentinel实例对服务器做出的下线判断,即单个sentinel认为某个服务下线(有可能是接收不到订阅,之间的网络不通等等原因)。主观下线就是说如果服务器在[sentinel down-after-milliseconds]给定的毫秒数之内没有回应PING命令或者返回一个错误消息, 那么这个Sentinel会主观的(单方面的)认为这个master不可以用了
sentinel down-after-milliseconds <masterName> <timeout>
表示master被当前sentinel实例认定为失效的间隔时间,这个配置其实就是进行主观下线的一个依据
master在多长时间内一直没有给Sentine返回有效信息,则认定该master主观下线。也就是说如果多久没联系上redis-servevr,认为这个redis-server进入到失效(SDOWN)状态。
客观下线
ODown(客观下线):ODown需要一定数量的sentinel,多个哨兵达成一致意见才能认为一个master客观上已经down掉
quorum这个参数是进行客观下线的一个依据,法定人数/法定票数
意思是至少有quorum个sentinel认为这个master有故障才会对这个master进行下线以及故障转移。因为有的时候,某个sentinel节点可能因为自身网络原因导致无法连接master,而此时master并没有出现故障,所以这就需要多个sentinel都一致认为该master有问题,才可以进行下一步操作,这就保证了公平性和高可用。
相关文章:
最新Redis7哨兵模式(保姆级教学)
一定一定要把云服务器的防火墙打开一定要!!!!!!!!!否则不成功!!!!!!!!&…...
Redis原理及常见问题
高性能之道 单线程模型基于内存操作epoll多路复用模型高效的数据存储结构redis的单线程指的是数据处理使用的单线程,实际上它主要包含 IO线程:处理网络消息收发主线程:处理数据读写操作,包括事务、Lua脚本等持久化线程:执行RDB或AOF时,使用持久化线程处理,避免主线程的阻…...
nvm 的安装及使用 (Node版本管理器)
目录 1、nvm 介绍 2、nvm安装 3、nvm 使用 4、node官网可以查看node和npm对应版本 5、nvm安装指定版本node 6、安装cli脚手架 1、nvm 介绍 NVM 全称 node.js version management ,专门针对 node 版本进行管理的工具,通过它可以安装和切换不同版本的…...
【Yii2】数据库查询方法总结
目录 1.查找单个记录: 2.查找多个记录: 3.条件查询: 4.关联查询: 假设User模型有一个名为orders的多对一关联关系。 5.排序和分组: 6.数据操作: 7.事务处理: 8.命令查询: 9…...
区块链的三难困境是什么,如何解决?
人们需要保持社交、工作和睡眠之间的平衡,并且努力和谐相处。同样的概念也反映在区块链的三难困境中。 区块链三难困境是一个术语,指的是现有区块链的局限性:可扩展性、安全性和去中心化。这是一个存在了几十年的设计问题,其问题的…...
oCPC实践录 | oCPM的秘密
前言 笔者从这几方面介绍oCPM,并一一分析平台侧宣称的oCPM相比oCPC的优势,并解开其中的秘密。 1)什么是oCPM? 2)oCPC与oCPM的异同 3)平台宣称oCPM的优势 4)oCPM真正的秘密 5)oCPM下的点击率与…...
【Linux Shell学习笔记】Linux Shell的位置参数与函数
一、位置参数 位置参数,也被称之为位置变量,通过位置参数,可以在执行程序的时候,向程序传递数据 1.1 shell接收参数的方法 1.2 向shell传递参数的方法 二、函数 2.1 函数基础 2.1.1 函数简介 函数本质上就是一个代码块…...
缓存cache和缓冲buffer的区别
近期被这两个词汇困扰了,感觉有本质的区别,搜了一些资料,整理如下 计算机内部的几个部分图如下 缓存(cache) https://baike.baidu.com/item/%E7%BC%93%E5%AD%98 提到缓存(cache),就…...
Vue常见面试问答
vue响应式数据 vue2 Vue2 的对象数据是通过 Object.defineProperty 对每个属性进行监听,当对属性进行读取的时候,就会触发 getter,对属性进行设置的时候,就会触发 setter。 /** * 这里的函数 defineReactive 用来对 Object.def…...
Eureka相关面试题及答案
1、什么是Eureka? Eureka是一个由Netflix开发的服务发现(Service Discovery)工具,它是Spring Cloud生态系统中的一个关键组件。服务发现是微服务架构中的一个重要概念,它允许服务实例在启动时注册自己,以便…...
想要学会JVM调优,先掌握JVM内存模型和JVM运行原理
1、前言 今天将和你一起探讨Java虚拟机(JVM)的性能调优。 JVM算是面试中的高频问题了,通常情况下总会有人问到:请你讲解下 JVM 的内存模型,JVM 的 性能调优做过? 2、为什么 JVM 在 Java 中如此重要 首…...
详解C语言入门程序:HelloWorld.c
#include <stdio.h> // 头文件,使用<>编译系统会在系统头文件目录搜索在C语言中,#include 是预处理指令,用于将指定的头文件内容插入到当前源文件中。这里的 <stdio.h> 是一个标准库头文件,其中包含了与输入输出…...
【elk-day01】es和kibana搭建及验证---Mac-Docker
Mac系统使用Docker下载搭建和验证eskibana Docker下载安装es安装es验证kibana安装kibana验证 Docker下载安装 Docker Desktop官网安装下载地址 说明一下为什么要安装desktop版本的docker,因为docker作为工具使用,我们需要的是开箱即用,没有必…...
探索 3D 图形处理的奥秘
最近一年多来,在 3Dfx、Intel 们的狂轰滥炸中,在 Quake、古墓丽影们的推波助澜下,三维图形已经成为计算机迷眼中的又一个热点。3D 世界到底是怎样的神奇,我们又是怎样享受它的乐趣呢?就让我们来一探究竟吧。 图形基础…...
R语言孟德尔随机化研究工具包(1)---friendly2MR
friendly2MR是孟德尔岁随机化研究中的一个重要补充工具,可以批量探索因素间的因果关系,以及快速填补缺失eaf的数据,但是存在细微差异需要注意。 remotes::install_github("xiechengyong123/friendly2MR") library(friendly2MR)lib…...
CentOS7下使用Docker安装Nacos
CentOS7下使用Docker安装Nacos 一、查看和nacos相关的镜像二、拉去镜像三、创建容器四、查看日志 一、查看和nacos相关的镜像 docker search nacos二、拉去镜像 拉取 nacos/nacos-server:1.2.0 镜像 docker pull nacos/nacos-server:1.2.0三、创建容器 docker run --env MO…...
用 Node.js 写一个爬虫
自己设计一个网站,然后去爬取别人家页面的数据来做一个自己的网站。哈哈哈,如果自己写着玩可能没啥事,但如果用这个网站来获利,你可能就要被寄律师函了,毕竟这有点‘刑’。这篇文章呢,就带大家爬取豆瓣TOP2…...
关于HTTPS
目录 什么是加密 对称加密 非对称加密 中间人攻击 引入证书 HTTPS是一个应用层的协议,是在HTTP协议的基础上引入了一个加密层. HTTP协议内容都是按照文本的方式明文传输,这就导致在传输的过程中出现一些被篡改的情况. 运营商劫持事件 未被劫持的效果,点击下载按钮,就会…...
安全配置审计概念、应用场景、常用基线及扫描工具
软件安装完成后都会有默认的配置,但默认配置仅保证了服务正常运行,却很少考虑到安全防护问题,攻击者往往利用这些默认配置产生的脆弱点发起攻击。虽然安全人员已经意识到正确配置软件的重要性,但面对复杂的业务系统和网络结构、网…...
【计算机毕业设计】python+django数码电子论坛系统设计与实现
本系统主要包括管理员和用户两个角色组成;主要包括:首页、个人中心、用户管理、分类管理、数码板块管理、数码评价管理、数码论坛管理、畅聊板块管理、系统管理等功能的管理系统。 后端:pythondjango 前端:vue.jselementui 框架&a…...
最优化方法Python计算:无约束优化应用——神经网络回归模型
人类大脑有数百亿个相互连接的神经元(如下图(a)所示),这些神经元通过树突从其他神经元接收信息,在细胞体内综合、并变换信息,通过轴突上的突触向其他神经元传递信息。我们在博文《最优化方法Python计算:无约…...
Spring Data Redis对象缓存序列化问题
相信在项目中,你一定是经常使用 Redis ,那么,你是怎么使用的呢?在使用时,有没有遇到同我一样,对象缓存序列化问题的呢?那么,你又是如何解决的呢? Redis 使用示例 添加依…...
自动驾驶代客泊车AVP巡航规划详细设计
目 录 巡航规划详细设计... 1 修改记录... 2 目 录... 3 1 背景... 5 2 系统环境... 6 2.1 巡航规划与其它模块联系... 6 2.2 巡航规划接口说明... 6 3 规划模块设计... 9 3.1 巡航规划架构图... 9 3.2 预处理... 10 3.3 Planner. 10 3.3.1 Geometry planner. 10 …...
亚马逊云科技 re:Invent 2023 产品体验:亚马逊云科技产品应用实践 国赛选手带你看 Elasticache Serverless
抛砖引玉 讲一下作者背景,曾经参加过国内世界技能大赛云计算的选拔,那么在竞赛中包含两类,一类是架构类竞赛,另一类就是 TroubleShooting 竞赛,对应的分别为亚马逊云科技 GameDay 和亚马逊云科技 Jam,想必…...
Flink on K8S集群搭建及StreamPark平台安装
1.环境准备 1.1 介绍 在使用 Flink&Spark 时发现从编程模型, 启动配置到运维管理都有很多可以抽象共用的地方, 目前streampark提供了一个flink一站式的流处理作业开发管理平台, 从流处理作业开发到上线全生命周期都做了支持, 是一个一站式的流出来计算平台。 未来spark开…...
SpringBoot如何优雅的处理免登录接口
在项目开发过程中,会有很多API接口不需要登录就能直接访问,比如公开数据查询之类的 ~ 常规处理方法基本是 使用拦截器或过滤器,拦截需要认证的请求路径。在拦截器中判断session或token信息,如果存在则放行,否则跳转到…...
元旦档首日票房超4.69亿,“下雪场尴尬”上热搜!
哇塞,元旦假期终于来啦!🎉在这个喜庆的时刻,电影院也热闹非凡,据猫眼专业版数据显示,截至12月30日,2023年元旦档首日票房竟然超过了4.69亿!这简直是个天文数字啊!&#x…...
CentOS系统中设置IP地址的方式和存在的问题
在CentOS系统中设置IP地址通常涉及以下步骤: 打开网络接口配置文件: 使用文本编辑器(如vi、nano或emacs)打开 /etc/sysconfig/network-scripts/ifcfg-eth0 文件。这里的"eth0"是网卡的名称,如果你的系统中有…...
使用vmware,在ubuntu18.04中使用笔记本的摄像头
步骤1:在windows中检查相机状态 win10系统中,在左下的搜索栏,搜索“相机”,点击进入即可打开相机,并正常显示图像。 注意:如果相机连接到了虚拟机,则不能显示正常。 步骤2:在ubuntu…...
中间件系列 - Redis入门到实战(高级篇-分布式缓存)
前言 学习视频: 黑马程序员Redis入门到实战教程,深度透析redis底层原理redis分布式锁企业解决方案黑马点评实战项目 中间件系列 - Redis入门到实战 本内容仅用于个人学习笔记,如有侵扰,联系删除 学习目标 Redis持久化Redis主从…...
营销型网站建设需要懂什么/新的营销方式有哪些
ERP-ORACLE-EBS-AP预付款管理--操作AP预付款管理--操作预付款发票录入:预付款的录入和标准发票一样,只是在类型时选择“预付款”;对于预付款类型的发票,实际支付了多少预付款就录入多少,因为预付款必须要全额支付才能核…...
资深网站/百度官方版下载
问卷与问卷管理系统问卷是由一组问题构成的,被调查者可以根据问题的备选答案的情况,选择最符合自己的一条或多条答案,或根据自己的情况填写能够体现意愿数据的一种互动式服务。问卷并不同于普通意义上的投票,虽然后一种形式我们接…...
肉山谷英雄传说新手任务登录英文网站怎么做/淘宝如何刷关键词增加权重
达达是来自异世界的魔女,她在漫无目的地四处漂流的时候,遇到了善良的少女翰翰,从而被收留在地球上。 翰翰的家里有一辆飞行车。 有一天飞行车的电路板突然出现了故障,导致无法启动。 电路板的整体结构是一个R行C列的网格&#…...
优秀高端网站建设报价/atp最新排名
1.提升内聚性 2.降低耦合度 3.切分关注面 4.模块化系统性关注面 5.缩小类和函数的尺寸 6.选用更好的命名,缩减冗余的注释 转载于:https://www.cnblogs.com/DjangoBlog/p/5445309.html...
做蛋糕哪个教程网站好/百度seo服务
https://codeforces.com/gym/101630 题目大意:给一个有向图,有nnn个点,mmm条边,保证m>2∗nm>2*nm>2∗n,保证输入没有重边且任意两个点均可达,现在要删除m−2∗nm-2*nm−2∗n条边,使得任…...
深圳网站建设企业/防恶意点击软件
由于不懂程序。 所以选择了先做一个静态的网站。在考虑是用table,还是用 divcss 最后选择了table,因为是个仿站,做出来美观效果要尽量一样才可以。 现在网站已经上线一个月,想给自己点时间,第一,把整个页面…...