CentOS7搭建Redis Sentinel

2023-10-28

目录

什么是Redis Sentinel

搭建Redis Sentinel

启动与验证


什么是Redis Sentinel

官方文档:Redis 的 Sentinel 文档

搭建Redis Sentinel

首先需要在CentOS环境下准备三个redis节点和三个sentinel节点:

首先要在CentOS环境下安装好Redis,具体可以参考:CentOS7安装Redis

然后在redis的bin文件夹下创建sentinel文件夹,具体命令如下:

[root@localhost ~]# cd /usr/local/redis/bin/
[root@localhost bin]# mkdir sentinel
[root@localhost bin]# cd sentinel/
[root@localhost sentinel]# mkdir 6380 6381 6382 26380 26381 26382

1、在6380、6381、6382文件夹下创建redis.conf配置文件

[root@localhost sentinel]# cp ../redis.conf 6380/
[root@localhost sentinel]# cp ../redis.conf 6381/
[root@localhost sentinel]# cp ../redis.conf 6382/

修改配置文件:

protected-mode no

daemonize yes

port 6380

6381、6382两个节点作为6380的从节点,除了上面的配置外还需增加配置:

slaveof 192.168.115.134 6380

2、创建sentinel.conf配置文件

sentinel.conf可以从redis源码中cp

[root@localhost sentinel]# cp /usr/local/redis-source/sentinel.conf 26380/
[root@localhost sentinel]# cp /usr/local/redis-source/sentinel.conf 26381/
[root@localhost sentinel]# cp /usr/local/redis-source/sentinel.conf 26382/

修改端口、启动方式、哨兵要监控的master信息:

port 26380

daemonize yes

sentinel monitor mymaster 192.168.115.134 6380 2

最后一行配置代表Sentinel去监视一个名为mymaster的主服务器, 这个主服务器的 IP 地址为 192.168.115.134 , 端口号为 6380, 而将这个主服务器判断为失效至少需要2个Sentinel同意(即至少有2个Sentinel节点存活,才能完成master的选举)。

 3、创建批量执行脚本

批量启动:

start-all.sh

/usr/local/redis/bin/redis-server /usr/local/redis/bin/sentinel/6380/redis.conf
/usr/local/redis/bin/redis-server /usr/local/redis/bin/sentinel/6381/redis.conf
/usr/local/redis/bin/redis-server /usr/local/redis/bin/sentinel/6382/redis.conf
/usr/local/redis/bin/redis-sentinel  /usr/local/redis/bin/sentinel/26380/sentinel.conf
/usr/local/redis/bin/redis-sentinel  /usr/local/redis/bin/sentinel/26381/sentinel.conf
/usr/local/redis/bin/redis-sentinel  /usr/local/redis/bin/sentinel/26382/sentinel.conf

shutdown-all.sh

/usr/local/redis/bin/redis-cli -p 6380 shutdown
/usr/local/redis/bin/redis-cli -p 6381 shutdown
/usr/local/redis/bin/redis-cli -p 6382 shutdown
/usr/local/redis/bin/redis-cli -p 26380 shutdown
/usr/local/redis/bin/redis-cli -p 26381 shutdown
/usr/local/redis/bin/redis-cli -p 26382 shutdown

最后为脚本赋予权限

[root@localhost sentinel]#  chmod +x start-all.sh shutdown-all.sh 

启动与验证

执行start-all.sh脚本:

[root@localhost sentinel]# ./start-all.sh 

登录一个哨兵节点,并查看是否启动成功:

[root@localhost sentinel]# ../redis-cli -p 26380
127.0.0.1:26380> info sentinel
# Sentinel
sentinel_masters:1
sentinel_tilt:0
sentinel_running_scripts:0
sentinel_scripts_queue_length:0
sentinel_simulate_failure_flags:0
master0:name=mymaster,status=ok,address=192.168.115.134:6380,slaves=2,sentinels=3

查看master节点详细信息:

127.0.0.1:26380> sentinel master mymaster

查看slave节点的详细信息:

127.0.0.1:26380> sentinel slaves mymaster

如果我们将当前的master节点下掉,哨兵会从slave节点中选举新的master:

[root@localhost sentinel]# ps -ef|grep redis
root      40180      1  0 22:13 ?        00:00:01 /usr/local/redis/bin/redis-server *:6380
root      40185      1  0 22:13 ?        00:00:00 /usr/local/redis/bin/redis-server *:6381
root      40190      1  0 22:13 ?        00:00:01 /usr/local/redis/bin/redis-server *:6382
root      40196      1  0 22:13 ?        00:00:01 /usr/local/redis/bin/redis-sentinel *:26380 [sentinel]
root      40201      1  0 22:13 ?        00:00:01 /usr/local/redis/bin/redis-sentinel *:26381 [sentinel]
root      40206      1  0 22:13 ?        00:00:01 /usr/local/redis/bin/redis-sentinel *:26382 [sentinel]

[root@localhost sentinel]# kill -9 40180
[root@localhost sentinel]# ../redis-cli -p 26380
127.0.0.1:26380> info sentinel
# Sentinel
sentinel_masters:1
sentinel_tilt:0
sentinel_running_scripts:0
sentinel_scripts_queue_length:0
sentinel_simulate_failure_flags:0
master0:name=mymaster,status=ok,address=192.168.115.134:6381,slaves=2,sentinels=3

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

CentOS7搭建Redis Sentinel 的相关文章

  • Redis 块推送直到列表有空位

    我正在寻找类似的东西BLPUSH该命令将阻塞 直到列表的长度低于指定值max size 目的是防止生产者运行速度快于消费者时列表无限增长 功能与 python 非常相似Queue put https docs python org 3 li
  • 我的 Redis 自动生成的密钥

    我不知道我的 Redis 版本 4 0 9 到底发生了什么 我正在运行一个应用程序并使用 Redis 来存储我的数据库 但是 然后 Redis 自动创建 3 个新键 Backup1 Backup2 Backup3 并删除我的所有数据 这是我
  • 如何在节点redis客户端上设置读取超时?

    在 github 上我没有看到读取超时的选项 https github com NodeRedis node redis https github com NodeRedis node redis There s connect timeo
  • 如何设置 Celery 以通过 ssl 与 Azure Redis 实例对话

    使用 的伟大答案 如何在microsoft azure上的django项目中配置celery redis https stackoverflow com questions 39616701 how to configure celery
  • Redis INCRBY 有限制

    我想知道是否有一种方法可以通过我的应用程序的单次往返在 Redis 中执行此操作 对于给定的键K 其可能值V是范围内的任意整数 A B 基本上 它有上限和下限 When an INCRBY or DECRBY发出命令 例如INCRBY ke
  • 如何测试我的 Redis 缓存是否正常工作?

    我已经安装了 django redis cache 和 redis py 我遵循了 Django 的缓存文档 据我所知 以下设置就是我所需要的 但我如何判断它是否正常工作 设置 py CACHES default BACKEND redis
  • 在 aws-elasticache 上使用 memcached 或 Redis

    我正在 AWS 上开发一个应用程序 并使用 AWS elasticache 进行缓存 我对使用 memcached 或 redis 感到困惑 我阅读了有关 redis 3 0 2 更新以及它现在如何等同于 memchached 的文章 ht
  • SignalR 无法连接到 SSL 上的 Azure Redis

    我目前在 Azure 上托管我的 redis 缓存服务器 并让 signalR 依赖它作为骨干 使用以下内容 GlobalHost DependencyResolver UseRedis 服务器 端口 密码 eventKey 这可以在端口
  • 无法启动redis.service:单元redis-server.service被屏蔽

    我在 ubuntu 16 04 上安装了 Redis 服务器 但是当我尝试使用启动redis服务时 sudo systemctl start redis 我收到消息 Failed to start redis service Unit re
  • 使用 Redis 命令 incr 和 expire 时的竞争条件

    根据redis文档 http redis io commands incr http redis io commands incr 在段落模式 速率限制器 2 较短的版本代码 value INCR ip IF value 1 THEN EX
  • Redis发布/订阅:查看当前订阅了哪些频道

    我目前有兴趣查看我拥有的 Redis 发布 订阅应用程序中订阅了哪些频道 当客户端连接到我们的服务器时 我们将它们注册到如下所示的通道 user user id 这样做的原因是我希望能够看到谁 在线 目前 我在不知道客户端是否在线的情况下盲
  • Node Js:Redis 作业在完成其任务后未完成

    希望你们做得很好 我在我的 Nodejs 项目中实现了 BullMQ Bull 的下一个主要版本 来安排发送电子邮件的作业 例如 发送忘记密码请求的电子邮件 所以 我编写了如下所示的代码 用户服务 await resetPasswordJo
  • 如何在Redis中从hmset()切换到hset()?

    我收到弃用警告 即 Redis hmset 已弃用 请改用 Redis hset 但是 hset 采用第三个参数 我不知道是什么name应该是 info users 10 timestamp datetime utcnow strftime
  • 为什么 Redis TimeSeries 不捕获聚合中的最后一个元素?

    我试图了解 Redis 的时间序列规则创建的工作原理 但我很困惑为什么 Redis 会忽略聚合中的最后一项 并想知道这是否是预期的行为 我在中创建了示例代码redis cli为了显示 127 0 0 1 6379 gt FLUSHALL O
  • Java 将字节转换为二进制安全字符串

    我有一些以字节为单位的数据 我想将它们放入Redis中 但是Redis只接受二进制安全字符串 而我的数据有一些二进制非安全字节 那么如何将这些字节转换为二进制安全字符串以便将它们保存到 Redis 中呢 Base64 对我有用 但它使数据更
  • redis - 使用哈希

    我正在使用 redis 为我的 Web 应用程序实现社交流和通知系统 我是 redis 的新手 我对哈希值及其效率有一些疑问 我读过这篇很棒的文章Instagram 帖子 http instagram engineering tumblr
  • Laravel 异常队列最大尝试次数超出

    我创建了一个应用程序来向多个用户发送电子邮件 但在处理大量收件人时遇到问题 该错误出现在failed jobs table Illuminate Queue MaxAttemptsExceededException App Jobs ESe
  • Redis 队列工作程序在 utcparse 中崩溃

    我正在尝试按照以下教程获得基本的 rq 工作 https blog miguelgrinberg com post the flask mega tutorial part xxii background jobs https blog m
  • 在 Spring 4 中干掉通用的 RedisTemplate

    我读到你可以拥有 Autowired从 Spring 4 开始泛型 这太棒了 我有一个摘要RedisService我想参加的课程 Autowired一个通用的 RestTemplate 如下所示 public abstract class
  • ServiceStack.Redis:无法连接:sPort:

    我经常得到 ServiceStack Redis 无法连接 sPort 0 或 ServiceStack Redis 无法连接 sPort 50071 或其他端口号 当我们的网站比较繁忙时 就会出现这种情况 Redis 本身看起来很好 CP

随机推荐

  • C++逐行解析Txt文本文件,并将相应的字符串转换为double等类型

    直接上代码 ReadTxt cpp 此文件包含 main 函数 程序执行将在此处开始并结束 include
  • 正则表达式匹配IPv4,IPv6

    简单学习了一下正则表达式 感觉IPv4 IPv6匹配挺实用的 记录一下 IPv4 25 0 5 2 0 4 d 1 d 2 1 9 d 3 25 0 5 2 0 4 d 1 d 2 1 9 d String IPv4Regex 25 0 5
  • 函数调用栈——初探!

    好些日子以前 我接触了Java 当时碰到一个问题 方法调用栈 当时不太明白 直到前段时间学了 数据结构 中的 栈 才略微的明白了一些 先将这个曾经不懂的地方总结一下 首先 必须对 栈 这种结构的特性有所了解 栈的特性 后进先出 在程序中 调
  • 万字超详细解析!Spring之基于注解的声明式事务

    14 1 概述 14 1 1 编程式事务 事务功能的相关操作全部通过自己编写代码来实现 Connection conn try 开启事务 关闭事务的自动提交 conn setAutoCommit false 核心操作 提交事务 conn c
  • iOS 16适配

    IDE环境相关升级 Xcode 14 0 macOS 12 4 Xcode 14 Beta 3 传送门 https developer apple com services account download path Developer T
  • Elasticsearch新手入门教程(已经是最简洁版)

    1 配置JDK环境 建议1 7以上 2 官网下载ES https www elastic co cn 3 解压启动 用dos命令进入压缩包里面 这里可修改端口 补充 插件使用 这里使用的elasticsearch head master 插
  • win10+wsl2+ubuntu+zsh+Powerlevel10k+nerd fonts

    wsl2 是适用于 linux 的 windows 子系统的新版本 是相对于 wsl1 的升级 简单理解就是 wsl2 是可以在 windows 下进行 linux 开发 在我开来 wsl2 和虚拟机没什么区别 wsl2 就是一个交互性优化
  • 信息收集----谷歌语句

    信息收集的方式可以分为两种 主动和被动 主动的信息收集方式 通过直接访问 扫描网站 这种将流量流经网站的行为 被动的信息收集方式 利用第三方的服务对目标进行访问了解 比如 Google搜索 通过搜索引擎 有时会给我们带来意想不到的效果 下面
  • thinkphp5 切换多语言

    请求时候 1 header中增加 Accept Language 语言 2 在请求地址中增加 lang 语言参数
  • python--unittest单元测试框架

    1 简介 unittest单元测试框架是受到 JUnit JAVA 的启发 与其他语言中的主流单元测试框架有着相似的风格 其支持测试自动化 配置共享代码测试 支持将测试样例聚合到测试集中 并将测试与报告框架独立 2 构成 静态类图 2 1
  • ajax发生错误,Ajax犯的错误处理方法

    1 ajax 发送请求时状态判断 if else 语句问题 var xhr new XMLHttpRequest xhr open get strUrl xhr onreadystatechange function if xhr read
  • 时序分析/约束(一):相关概念

    由 zme 于 星期四 02 20 2014 15 03 发表 http xilinx eetrend com blog 6631 时序分析时FPGA设计中永恒的话题 也是FPGA开发人员设计进阶的必由之路 慢慢来 先介绍时序分析中的一些基
  • uniapp 登入功能 vuex使用 通俗易懂

    目录 功能介绍 运行效果 未登入状态 登入页面 进行登入完后 代码演示 功能结构 请求封装 详细文章 部分api ts 关于 用户登入接口 store index ts store user ts main js App vue type
  • 2018-12-12 Pycharm git clone 密码错误

    在新建工程的时候选择了 clone from git 不小心把密码输错了 再次clone 不再提示输入密码 只提示错误 微信截图 20181212003707 png 进入 windows 凭据 点击下三角 删除即可 微信截图 201812
  • nodejs express multer 中文名乱码

    找了半天找不到 科学上网出去秒解决 哎 无力吐槽 不bb那么多 直接上代码 上传时前端正常 但是后端接收文件时乱码 const uploads multer 文件上传的位置 dest path join dirname public upl
  • Java中字符串与byte数组之间的转换方法

    在Java编程中 我们常常需要对字符串和byte数组进行转换 字符串一般是用来表示文本信息 而byte数组则是用来表示二进制数据 如图片 音频等 本文将详细介绍Java中字符串和byte数组之间的转换方法 包括将字符串转换为byte数组和将
  • Failed to find Build Tools revision 27.0.3

    因为电脑系统的问题 导致运行一下Android Studio整个8G的电脑内存都给吃没了 索性又重装了下电脑 重新安装了下Android Studio 错误信息 11 44 Gradle sync failed Failed to find
  • @Value值注入及配置文件组件扫描方式

    spring配置文件对应的是父容器 springMVC配置文件产生的是子容器 前者一般配置数据源 事务 注解等 当然还可以进一步将一些配置细化到其他xml中 后者一般配置控制层相关的 如静态资源 视图解析器等 系统启动的时候 先初始化父容器
  • 神经网络的计算量(FLOPs)、参数量(Params)、推理时间(FPS)的定义及实现方法

    目录 1 定义 2 实现方法 2 1 计算参数量 2 2 计算参数量和FLOPs 2 3 计算推理时间 FPS 3 数据大小对参数量和FLOPs的影响 4 参数量和FLOPs对于硬件要求 参考 1 定义 在评价深度学习模型的大小 计算量 推
  • CentOS7搭建Redis Sentinel

    目录 什么是Redis Sentinel 搭建Redis Sentinel 启动与验证 什么是Redis Sentinel 官方文档 Redis 的 Sentinel 文档 搭建Redis Sentinel 首先需要在CentOS环境下准备