Linux下编译安装redis-哨兵模式

news2024/9/23 5:29:01

Linux下编译安装-哨兵模式

哨兵sentinel模式
sentinel相当于是一个投票者或者哨兵,它时刻监视着redis集群的各个服务器,当主master挂了之后,它将进行投票进行新master的选举。下图
在这里插入图片描述

Sentinel的工作方式
每个Sentinel以每秒钟一次的频率向它所知的Master,Slave以及其他 Sentinel 实例发送一个 PING 命令
如果一个实例(instance)距离最后一次有效回复 PING 命令的时间超过 down-after-milliseconds 选项所指定的值, 则这个实例会被 Sentinel 标记为主观下线。
如果一个Master被标记为主观下线,则正在监视这个Master的所有 Sentinel 要以每秒一次的频率确认Master的确进入了主观下线状态。
当有足够数量的 Sentinel(大于等于配置文件指定的值)在指定的时间范围内确认Master的确进入了主观下线状态, 则Master会被标记为客观下线
在一般情况下, 每个 Sentinel 会以每 10 秒一次的频率向它已知的所有Master,Slave发送 INFO 命令
当Master被 Sentinel 标记为客观下线时,Sentinel 向下线的 Master 的所有 Slave 发送 INFO 命令的频率会从 10 秒一次改为每秒一次
若没有足够数量的 Sentinel 同意 Master 已经下线, Master 的客观下线状态就会被移除。
若 Master 重新向 Sentinel 的 PING 命令返回有效回复, Master 的主观下线状态就会被移除。
主观下线和客观下线
主观下线(Subjectively Down, 简称 SDOWN)指的是单个 Sentinel 实例对服务器做出的下线判断。
客观下线(Objectively Down, 简称 ODOWN)指的是多个 Sentinel 实例在对同一个服务器做出 SDOWN 判断, 并且通过 SENTINEL is-master-down-by-addr 命令互相交流之后, 得出的服务器下线判断。
客观下线条件只适用于主服务器: 对于任何其他类型的 Redis 实例, Sentinel 在将它们判断为下线前不需要进行协商, 所以从服务器或者其他 Sentinel 永远不会达到客观下线条件。
只要一个 Sentinel 发现某个主服务器进入了客观下线状态, 这个 Sentinel 就可能会被其他 Sentinel 推选出, 并对失效的主服务器执行自动故障迁移操作。

环境介绍
安装环境
节点 IP OS Redis版本
Node1 192.168.2.1 CentOS release 6.5 (Final) redis-4.0.14
Node2 192.168.2.2 CentOS release 6.5 (Final) redis-4.0.14
Node3 192.168.2.3 CentOS release 6.5 (Final) redis-4.0.14
预装系统依赖包 – 三个主机节点都需要安装

yum -y install gcc-c++ 
yum -y install tcl 

安装Redis
配置node1
上传Redis安装介质到 node1 节点,编译安装redis

tar -zxvf redis-4.0.14.tar.gz -C /tdx 
cd /tdx/redis-4.0.14 
make && make install 
mkdir log && mkdir run 

vi /tdx/redis-4.0.14/redis.conf
bind 0.0.0.0 
port 6379 
daemonize yes 
pidfile /tdx/redis-4.0.14/run/redis.pid 
logfile "tdx/redis-4.0.14/log/redis.log" 
vi /tdx/redis-4.0.14/sentinel.conf 
bind  192.168.2.1 127.0.0.1 
port 26379 
sentinel monitor mymaster 192.168.2.1 6379 2 
daemonize yes

配置node2
上传Redis安装介质到 node1 节点,编译安装redis

tar -zxvf redis-4.0.14.tar.gz -C /tdx 
cd /tdx/redis-4.0.14 
make && make install 
mkdir log && mkdir run 
vi tdx/redis-4.0.14/redis.conf 
bind 0.0.0.0 
port 6379 
daemonize yes 
pidfile /tdx/redis-4.0.14/run/redis_16379.pid 
logfile "tdx/redis-4.0.14/log/redis.log" 
slaveof 192.168.2.1 6379 
vi tdx/redis-4.0.14/sentinel.conf 
bind 127.0.0.1 192.168.2.2 127.0.0.1 
port 26379 
sentinel monitor mymaster 192.168.2.1 6379 2 
daemonize yes

配置node3
上传Redis安装介质到 node1 节点,编译安装redis

tar -zxvf redis-4.0.14.tar.gz -C /tdx 
cd /tdx/redis-4.0.14 
make && make install 
mkdir log && mkdir run 
vi /tdx/redis-4.0.14/redis.conf 
bind 0.0.0.0 
port 6379 
daemonize yes 
pidfile /tdx/redis-4.0.14/run/redis_16379.pid 
logfile "tdx/redis-4.0.14/log/redis.log" 
slaveof 192.168.2.1 6379 
vi /tdx/redis-4.0.14/sentinel.conf 
bind  192.168.2.3 127.0.0.1 
port 26379 
sentinel monitor mymaster 192.168.2.1 6379 2 
daemonize yes

配置防火墙

firewall-cmd --permanent --add-port=6379/tcp 
firewall-cmd --permanent --add-port=26379/tcp
firewall-cmd --reload 

启动服务
三个节点分别执行

cd /tdx/redis-4.0.14 
src/redis-server redis.conf && src/redis-sentinel sentinel.conf 

查看状态
三个节点分别执行

cd /tdx/redis-4.0.14 
src/redis-cli -h 127.0.0.1 -p 6379 info Replication
src/redis-cli -h 127.0.0.1 -p 6379 info Replication 
src/redis-cli -h 127.0.0.1 -p 6379 info Replication 

查看进程

ps aux | grep redis 

清空日志

truncate -s 0 redis.log

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

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

相关文章

python从入门到精通:数据容器

数据容器介绍 一种可以容纳多份数据的数据类型,容纳的每一份数据称之为一个元素,可以是任意类型的数据,如字符串、数字、布尔等。 数据容器根据特点的不同,如: 是否支持重复元素 是否可以修改 是否有序&#xff0…

Web3链上聚合器声呐已全球上线,开启区块链数据洞察新时代

在全球区块链技术高速发展的浪潮中,在创新发展理念的驱动下,区块链领域的工具类应用备受资本青睐。 2024年8月20日,由生纳(香港)国际集团倾力打造的一款链上应用工具——“声呐链上聚合器”,即“声呐链上数…

数据分析实操案例分享:如何对人事数据进行BI分析?

在数据驱动时代,数据分析已经成为企业和个人获取竞争优势的关键技能。特别是在人力资源管理领域,数据分析的应用正变得越来越重要。通过对在职和离职数据的深入分析,企业不仅能够洞察员工的动态,揭示员工流动的模式、预测人才需求…

快速体验微软TTS服务

微软的语音合成服务(TTS)拥有500多种高品质的音色,并且在全球都有节点可以接入,在国内访问延迟可以控制在毫秒级。下面介绍在不需要编码的情况下,如何快速体验微软TTS的效果。 方式一、微软语音库UI界面 语音库地址&…

网安加·百家讲坛 | 裴伟伟:蓝牙音箱和耳机安全测评报告

作者简介:裴伟伟,洞源实验室创始人,国家网安基地网络安全行业专家,网安加社区特聘专家,持有CISSP、PMP证书,曾在HITCON、可信云大会、开源产业大会等安全论坛发表演讲。曾任国内某安全实验室负责人、某互金…

Oracle SQL - 合并重叠的期间

数据和目标 有如下数据存储了各组件的有效期间(此处起止日期用数字代替以便查阅),目标为将有重叠的期间合并到一起。 SQL> SELECT * FROM demo_eff_periods;COMPONENT_ITEM_ID EFFECTIVITY_DATE DISABLE_DATE ----------------- -------…

Spring GateWay自定义断言工厂

文章目录 概要整体架构流程最终的处理效果小结 概要 我们在线上系统部署了,灰度环境和生产环境时,可以通过自定义断言工厂去将请求需要路由到灰度环境的用户调用灰度的的服务集群,将正常的用户调用正常集群。 这样,我们可以在上线…

【UCB CS61C】Lecture 1 - Number Representation 数制

目录 进制的定义常用的进制与换算十进制到二进制的转换二进制到十六进制、十六进制到二进制的转换二进制向 n 进制的转换 有符号数处理(Signed Representation)无符号整数(Unsigned Integers)有符号整数(Signed Interg…

亚德诺(ADI)超静音步进电机驱动芯片——TMC2209

芯品快报:德州仪器(TI)的高性能、集成式的双全桥电机驱动器——DRV8412 芯品快报:亚德诺(ADI)超静音步进电机驱动芯片——TMC2209 原创 IPBrain平台君 集成电路大数据平台 2024年08月16日 19:18 北京 平台君今天给大家介绍一款亚德诺(ADI)公司的用于两相步进电机的超…

Elasticsearch 使用误区之四——不合理的使用 track_total_hits

0、企业级实战问题 在使用 Elasticsearch 进行搜索时,我们常常关心匹配查询的文档总数而将 track_total_hits 设置为 true,如下截图所示,在数据量非常大的情况下这种检索导致的问题是:查询特别慢,聚合会更慢&#xff0…

RKNN在转换过程中的均值和方差设置问题

为什么ONNX转RKNN要匹配均值和方差? 因为不匹配精度会下降!!! 一般的类似于YOLO模型 YOLO模型在ONNX转RKNN时rknn.config设置为 一些其他模型将数据送入模型时会进行前处理,前处理会设置均值和方差,则在转…

【Nginx】实现 FastCGI

为什么会有 FastCGI ? CGI 协议虽然解决了语言解析器和 Web Server 之间通讯的问题,但是它的效率很低,因为 Web Server每收到一个请求都会创建一个CGI 进程, PHP 解析器都会解析 php.ini 文件,初始化环境&#xff0c…

LCP142 环形链表[leetcode-7]

LCP142 环形链表 先上结果 前排提醒,本文有两种解法,和原理分析 给定一个链表的头节点 head ,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。 如果链表中有某个节点,可以通过连续跟踪 next 指针再次…

数据结构与算法 - 设计

1. LRU缓存 请你设计并实现一个满足 LRU (最近最少使用) 缓存 约束的数据结构。 实现 LRUCache 类: LRUCache(int capacity) 以 正整数 作为容量 capacity 初始化 LRU 缓存int get(int key) 如果关键字 key 存在于缓存中,则返回关键字的值&#xff0…

0819、0820梳理及一些面试题梳理

一、抓包分析 二、HTTP服务器 三、动态库与静态库 四、一些面试题 指针数组和数组指针的区别:指针数组本质是一个数组,只是数组中存储的是指针变量。数组指针存储的是该数组的起始地址,对该指针来说每偏移一个单位就是偏移了一整个数组的地…

如何寻找专业精密机械零件代加工工厂

在现代工业生产中,精密机械零件的加工质量直接关系到产品的性能和可靠性。因此,寻找一家专业的精密机械零件代加工工厂至关重要。以下时利和整理分享的一些关于寻找专业精密机械零件代加工工厂的关键步骤和要点,帮助你找到合适的合作伙伴。 首…

想投资现货黄金?在TMGM开户需要多少钱?

最近,越来越多的人开始关注黄金投资,希望通过黄金来对冲风险、保值增值。而选择一家可靠的交易平台是进行黄金投资的第一步。TMGM作为全球知名的外汇交易商,也为投资者提供了黄金交易服务。那么,在TMGM开户投资黄金,需…

尚硅谷VUE项目实战,前端项目-尚品汇2

尚硅谷VUE项目实战,前端项目-尚品汇2 1、路由传参 2、重写push

数字转化为千位符形式, 百分比形式

Intl.NumberFormat 千位符: function formatAsRMB(num){return new Intl.NumberFormat(zh-CN,{style: decimal, //将数字格式化为十进制数currency: CNY, // 货币为人民币minimumFractionDigits: 0 // 表示不显示小数部分}).format(num)}const number 12345678co…

【C++进阶学习】第十四弹——特殊类设计——探寻各种情况下类的应用

前言: C类是C很重要的一个部分,在很多应用场景中都发挥着十分重要的作用,今天我们来讲解几个特殊场景下类的应用 目录 一、特殊类:只能在栈/堆上创建对象 1. 只在栈上创建对象 2. 只在堆上创建对象 二、特殊类:不能…