Linux-Redis哨兵搭建

news2025/1/7 5:28:43

环境资源准备

主机名IP端口号角色
vm1192.168.64.156379/26379master
vm2192.168.64.166379/26379slave
vm3192.168.64.176379/26379slave

6379为redis服务暴露端口号、26379为sentinel暴露端口号。

安装Redis

 # 包文件下载 wget https://github.com/redis/redis/archive/7.2.2.tar.gz # 解压文件tar -zxvf redis-7.2.2.tar.gz# 进入包文件夹cd redis-7.2.2/# 安装依赖文件## Ubuntusudo apt install -y gcc g++ make## CentOSsudo yum -y install gcc g++ make## 创建安装文件夹、数据文件夹mkdir -p /usr/local/redis/data/# 再次检查当前目录是否为redis源码文件,如果是进行make操作make# make install安装到指定文件夹make install PREFIX=/usr/local/redis/

配置文件

文件路径

/etc/redis.conf

主节点(去除中文解释)

daemonize yeslogfile "/var/log/redis.log"bind 0.0.0.0port 6379protected-mode nopidfile /var/run/redis_6379.piddir /usr/local/redis/data  # 指定生成rdb文件的路径 相对路径受到启动redis的操作路径的影响slave-read-only yesslave-priority 100appendonly yes  # 开启AOF模式appendfilename "appendonly.aof"appendfsync everysec  requirepass 123456

从节点(去除中文解释)

注意将slaveof设置为置顶的主节点地址。

daemonize yeslogfile "/var/log/redis.log"bind 0.0.0.0port 6379protected-mode nopidfile /var/run/redis_6379.piddir /usr/local/redis/data  # 指定生成rdb文件的路径 相对路径受到启动redis的操作路径的影响slave-read-only yesslave-priority 90 # 主节点最高,其他依次递减,一个从节点90,一个从节点85appendonly yes  # 开启AOF模式appendfilename "appendonly.aof"appendfsync everysec  requirepass 123456slaveof 192.168.64.15 6379masterauth 123456

启动服务

/usr/local/redis/bin/redis-server /etc/redis.conf

查看启动状态

root@vm1:/home/ubuntu/redis-7.2.2# ps -ef | grep redisroot        7827       1  0 14:48 ?        00:00:00 /usr/local/redis/bin/redis-server 0.0.0.0:6379root        7848    1171  0 14:48 pts/0    00:00:00 grep --color=auto redis

登录验证

/usr/local/redis/bin/redis-cli

图片

启动成功,从节点设置成功

此时,主从redis已经设置完毕,开始搭建哨兵。

哨兵配置文件

文件路径

/etc/sentinel.conf

配置内容

创建文件夹

mkdir -p /usr/local/redis/temp
protected-mode noport 26379dir /usr/local/redis/templogfile "/var/log/sentinel.log"daemonize yessentinel monitor mymaster 192.168.64.15 6379 2   # mymaster集群的名字,2个节点以上认为不可用,进行fall oversentinel down-after-milliseconds mymaster 10000 # 判断主节点宕机时间,主观下线sentinel failover-timeout mymaster 60000  # 两次fallover间隔sentinel auth-pass mymaster 123456sentinel parallel-syncs mymaster 1 # 这个配置项指定了在发生failover主备切换时最多可以有多少个slave同时对新的master进行 同步,这个数字越小,完成failover所需的时间就越长,但是如果这个数字越大,就意味着越 多的slave因为replication而不可用。可以通过将这个值设为 1 来保证每次只有一个slave 处于不能处理命令请求的状态。

sentinel monitor,后第一个字符串为集群名称,一般为mymaster即可,后面跟主节点IP和端口号。三个节点配置文件相同。配置时去除中文。

启动sentinel服务

/usr/local/redis/bin/redis-sentinel /etc/sentinel.conf

查看启动情况

root@vm1:/home/ubuntu/redis-7.2.2# ps -ef | grep redisroot        7827       1  0 14:48 ?        00:00:01 /usr/local/redis/bin/redis-server 0.0.0.0:6379root        7887       1  0 14:57 ?        00:00:00 /usr/local/redis/bin/redis-sentinel *:26379 [sentinel]root        7895    1171  0 14:58 pts/0    00:00:00 grep --color=auto redis

利用python检测哨兵节点切换

import time

from redis.sentinel import Sentinel

sentinel_list = [
    ("192.168.64.15", 26379),
    ("192.168.64.16", 26379),
    ("192.168.64.17", 26379),
]

mySentinel = Sentinel(sentinel_list, )
for i in range(1000):
    try:
        print(mySentinel.discover_master("mymaster"))
        time.sleep(1)
    except:
        pass

图片

此时节点进行了切换,从日志可以看出切换过程。

图片

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

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

相关文章

df.groupby()方法使用表达式分组

# 索引值是否为偶数,分成两组 df.groupby(lambda x:x%20).sum() df.groupby(df.index%20).sum() # 同上这两个写法看似相似,确实都基于索引值来进行分组,但在实现方式上有细微的区别: df.groupby(lambda x: x % 2 0) 这种方式通过…

Python 数据可视化的完整指南

目录 一、为什么选择 Python 进行数据可视化? 二、常用 Python 可视化库及其特点 三、常用图表类型及其代码示例 折线图:用于展示数据随时间或其他连续变量的变化趋势。 柱状图:用于比较不同类别的数据大小。 散点图:用于展示两个变量之间的关系,并发现数据中的模式…

国内Ubuntu环境Docker部署CosyVoice

国内Ubuntu环境Docker部署CosyVoice 本文旨在记录在 国内 CosyVoice项目在 Ubuntu 环境下如何使用 dockermin-conda进行一键部署。 源项目地址: https://github.com/FunAudioLLM/CosyVoice 如果想要使用 dockerpython 进行部署,可以参考我另一篇博客中的…

Git的使用流程(详细教程)

目录 01.Git是什么? 1.1 Git简介 1.2 SVN与Git的最主要的区别 1.3 GIt主要特点 02.Git是干什么的? 2.1.Git概念汇总 2.2 工作区/暂存区/仓库 2.3 Git使用流程 03.Git的安装配置 3.1 Git的配置文件 3.2 配置-初始化用户 3.3 Git可视化…

ImageNet 2.0?自动驾驶数据集迎来自动标注新时代

引言: 3DGS因其渲染速度快和高质量的新视角合成而备受关注。一些研究人员尝试将3DGS应用于驾驶场景的重建。然而,这些方法通常依赖于多种数据类型,如深度图、3D框和移动物体的轨迹。此外,合成图像缺乏标注也限制了其在下游任务中的…

npm install --global windows-build-tools --save 失败

注意以下点 为啥下载windows-build-tools,是因为node-sass4.14.1 一直下载不成功,提示python2 没有安装,最终要安装这个,但是安装这个又失败,主要有以下几个要注意的 1、node 版本 14.21.3 不能太高 2、管理员运行 …

Beamer-LaTeX学习(教程批注版)【1】

该文档总体由beamer-latex的教程而来,由耳东小白以自身学习路径整理。因其中要点基本按照教程的顺序和结构整理,故而不能称之为完全原创,但也不是翻译,更不是抄袭,是个人自学笔记和批注,其中添加了小白个人…

wx005基于springboot+vue+uniapp的大学生心理健康测评管理系统小程序

开发语言:Java框架:springbootuniappJDK版本:JDK1.8服务器:tomcat7数据库:mysql 5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包&#…

SpringBoot整合springmvc、扩展springmvc

目录 一、 SpringMVC三大组件二、 Spring MVC 组件的自动管理2.1 中央转发器(DispatcherServlet)2.2 控制器2.3 视图解析器自动管理2.4 静态资源访问2.5 消息转换和格式化2.6 欢迎页面的自动配置 三、Springboot扩展springmvc3.1 视图控制器注册&#xf…

STM32使用UART发送字符串与printf输出重定向

首先我们先看STM32F103C8T6的电路图 由图可知,其PA9和PA10引脚分别为UART的TX和RX(注意:这个电路图是错误的,应该是PA9是X而PA9是RX,我们看下图的官方文件可以看出),那么接下来我们应该找到该引脚的定义是什么&#xf…

力扣28找出字符串中第一个匹配项的下标

class Solution:def strStr(self, haystack: str, needle: str) -> int:# 特殊情况处理if not needle:return 0# 获取 haystack 和 needle 的长度a len(needle)b len(haystack)# 遍历 haystack,检查每个子字符串是否与 needle 匹配for i in range(b - a 1):if…

8、RAG论文笔记(Retrieval-Augmented Generation检索增强生成)

RAG论文笔记 1、 **研究背景与动机**2、方法概述3、RAG 模型架构3.1总体架构3.2 Generator(生成器)3.3 检索器(Retriever)3.4训练(Training)3.5**解码方法**(求近似 )3.6微调的参数 …

PCA降维算法详细推导

关于一个小小的PCA的推导 文章目录 关于一个小小的PCA的推导1 谱分解 (spectral decomposition)2 奇异矩阵(singular matrix)3 酉相似(unitary similarity)4 酉矩阵5 共轭变换6 酉等价7 矩阵的迹的计算以及PCA算法推导8 幂等矩阵(idempotent matrix)9 Von Neumanns 迹不等式 [w…

Android studio 旧版本下载,NDK旧版本下载

记录一下旧版的ndk 和 Android studio 官方下载备份。 1.NDK 旧版本下载地址 下载地址:https://github.com/android/ndk/wiki/Unsupported-Downloads 2.Android studio 旧版本下载 下载地址 https://developer.android.com/studio/archive 如果出现以下页面 点击…

开源存储详解-分布式存储与ceph

ceph体系结构 rados:reliable, autonomous, distributed object storage, rados rados采用c开发 对象存储 ceph严格意义讲只提供对象存储能力,ceph的块存储能力实际是基于对象存储库librados的rbd 对象存储特点 对象存储采用put/get/delete&#xf…

Midjourney Imagine API 使用

Midjourney Imagine API 申请及使用 Midjourney 是一款非常强大的 AI 绘图工具,只要输入关键字,就能在短短一两分钟生成十分精美的图像。Midjourney 以其出色的绘图能力在业界独树一帜,如今,Midjourney 早已在各个行业和领域广泛…

docker从下载到Python项目打包到容器中运行(解决下拉超时问题)

docker安装(如果第一步或者第二步没有成功,说明是你的镜像源有问题,私聊我获取镜像源)镜像位置_/etc/yum.repos.d/CentOS-Base.repo sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/dock…

运算指令(PLC)

加 ADD 减 SUB 乘 MUL 除 DIV 浮点运算 整数运算

Linux高级--3.2.5 “外挂式”死锁监测设计

一、生活中“死锁”的场景 三个人,甲乙丙, 甲借了丙的钱,丙借了乙的钱,乙借了甲的钱。 甲找乙还钱,乙说:“别人还我 我就还你 ”,甲说:“好,那我等你” 乙找丙还钱&am…

图像去雾 | 基于Matlab的图像去雾系统(四种方法)

图像去雾 | 基于Matlab的图像去雾系统(四种方法) 目录 图像去雾 | 基于Matlab的图像去雾系统(四种方法)效果一览基本介绍程序设计参考资料 效果一览 基本介绍 基于Matlab的图像去雾系统(四种方法) 关于图像…