Centos7 安装redis集群哨兵模式

2023-11-06

一:整体哨兵模式规划


redis节点规划:6381 (master), 6382 (slave),6383 (slave),6384 (slave)

sentinel模式节点规划:26381 , 26382

二:Redis主从安装步骤

1.单机版Redis安装

2.在/usr/local/目录下创建 redis-sentinel文件夹

3.进入/usr/local/redis-sentinel目录下,创建文件夹 master-6381 ,slave-6382 ,slave-6383 ,slave-6384 ,sentinel-26381 ,sentinel-26382

4.把单机版安装目录下redis.conf拷贝到目录下 master-6381 slave-6382 slave-6383 slave-6384

5.把单机版安装目录下 sentinel.conf 拷贝到 sentinel-26381 ,sentinel-26382

6.修改/usr/local/redis-sentinel/master-6381/目录下 redis.conf 配置文件 (主服务器)

  • bind 192.168.1.62 --修改成自己的IP地址
  • port 6381 --主服务器的端口号
  • daemonize yes --后台启动
  • pidfile /var/run/redis_6381.pid -- redis 后台启动的时候,会在/var/run/默认生成一个pid文件
  • protected-mode no--保护模式关闭,否则启动哨兵的时候,无法正常运行(还可以设置密码的方式)
  • dir /usr/local/redis-sentinel/master-6381/data --数据保存目录

7.修改/usr/local/redis-sentinel/slave-6382/目录下 redis.conf 配置文件 (从服务器)

  • bind 192.168.1.62 --修改成自己的IP地址
  • port 6382 --主服务器的端口号
  • daemonize yes --后台启动
  • pidfile /var/run/redis-6382.pid -- redis 后台启动的时候,会在/var/run/默认生成一个pid文件
  • protected-mode no--保护模式关闭,否则启动哨兵的时候,无法正常运行(还可以设置密码的方式)
  • dir /usr/local/redis-sentinel/slave-6382/data --数据保存目录
  • slaveof 192.168.1.62 6381 --主服务器的IP 主服务器端口号

8.其他从服务器类似步骤7

9.此时启动会包错误,因为需要在相应的位置创建data文件夹

10.步骤9执行完后,就可以正常运行了

/usr/local/redis/bin/redis-server /usr/local/redis-sentinel/master-6381/redis.conf 
/usr/local/redis/bin/redis-server /usr/local/redis-sentinel/slave-6382/redis.conf 
/usr/local/redis/bin/redis-server /usr/local/redis-sentinel/slave-6383/redis.conf 
/usr/local/redis/bin/redis-server /usr/local/redis-sentinel/slave-6384/redis.conf 

10.启动完成后,连接主服务器客户端,查看主服务器信息 info

/usr/local/redis/bin/redis-cli -h 192.168.1.62 -p 6381

11.在主服务器节点上添加一个值,看看是否能同步到从服务器上去

三.在二完成的基础上添加哨兵监控主节点

1.修改/usr/local/redis-sentinel/sentinel-26381目录下的sentinel.conf

  • port 26381     -- 指定sentinel端口号
  • daemonize yes -- 指定sentinel为后台启动
  • protected-mode no --关闭保护模式
  • sentinel monitor mymaster [主服务器节点IP] [主服务器节点port] [几个哨兵检测到主节点失联数量]  -- 至少有几个哨兵检测到主服务器故障了,才进行故障迁移 ,实例 sentinel monitor mymaster 192.168.1.62 6381 2
  • sentinel down-after-milliseconds mymaster 30000--指定Sentinel判定Master断线的时间 
  • logfile "/usr/local/redis-sentinel/sentinel-26381/sentinel-26381.log"
  • dir "/usr/local/redis-sentinel/sentinel-26381/data"

2.修改/usr/local/redis-sentinel/sentinel-26382目录下的sentinel.conf

  • port 26382     -- 指定sentinel端口号
  • daemonize yes -- 指定sentinel为后台启动
  • protected-mode no --关闭保护模式
  • sentinel monitor mymaster [主服务器节点IP] [主服务器节点port] [几个哨兵检测到主节点失联数量]  -- 至少有几个哨兵检测到主服务器故障了,才进行故障迁移 ,实例 sentinel monitor mymaster 192.168.1.62 6381 2
  • sentinel down-after-milliseconds mymaster 30000--指定Sentinel判定Master断线的时间 
  • logfile "/usr/local/redis-sentinel/sentinel-26382/sentinel-26382.log"
  • dir "/usr/local/redis-sentinel/sentinel-26382/data"

3.启动哨兵,并查看哨兵日志

/usr/local/redis/src/redis-sentinel /usr/local/redis-sentinel/sentinel-26381/sentinel.conf 
/usr/local/redis/src/redis-sentinel /usr/local/redis-sentinel/sentinel-26382/sentinel.conf 
tail -f /usr/local/redis-sentinel/sentinel-26381/sentinel-26381.log 
 tail -f /usr/local/redis-sentinel/sentinel-26382/sentinel-26382.log 

4.直接把master节点进程kill掉,再次观看哨兵日志

在杀掉主节点进程的时候,没有发生主从切换,并且日志打印如下,解决方法时 在sentinel.conf配置文件中添加 protected-mode no (这个的前提是redis.conf文件的配置也是 protected-mode no )

5.解决4的问题后,重新启动sentinel,杀掉主节点进程和查看sentinel日志

    1) 主节点从6381变成6384

 

2)把节点6384的进程杀掉,主节点变成6382了

 

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

Centos7 安装redis集群哨兵模式 的相关文章

  • 是否可以使用带有 FUSE 文件系统的 Linux VFS 缓存?

    默认情况下 Linux VFS 缓存似乎不适用于 FUSE 文件系统 例如 read 调用似乎被系统地转发到 FUSE 文件系统 我在 FUSE 特定的远程文件系统上工作 我需要一个非常积极的缓存 我需要实现自己的页面缓存吗 或者是否可以为
  • Redis多插入问题

    我尝试多次插入 但它给了我错误 http pastie org 7337421 http pastie org 7337421 cat mass insert txt 3 r n 3 r nSET r n 3 r nkey r n 5 r
  • Redis部署配置-主从复制

    目前我有两台服务器 我已经部署了基于node js Express JS的Web服务API 我正在使用 Redis 来缓存 JSON 字符串 将此设置部署到生产中的最佳选择是什么 我懂了here https stackoverflow co
  • 如何从 python 将无穷大传递给 redis?

    我正在使用 redis py 并希望将 inf 和 inf 与 ZRANGEBYSCORE 一起使用 我尝试使用 inf 的字符串和浮点来执行此操作 但它们返回一个空集 我怎样才能做到这一点 EDIT 我尝试执行以下命令 redis Str
  • connect-redis - 如何保护会话对象免受竞争条件影响

    我使用 nodejs 和 connect redis 来存储会话数据 我将用户数据保存在会话中 并在会话生命周期中使用它 我注意到两个更改会话数据的请求之间可能存在竞争条件 我尝试过使用 redis lock 来锁定会话 但这对我来说有点问
  • Node.js 上通过套接字连接 Redis

    由于共享托管 目标主机上的我的 redis 服务器不在端口上运行 而是在非常特定的套接字上运行 可以通过套接字文件连接到该套接字 只有我的用户可以访问 但是 我还没有找到如何通过套接字指定连接node redis and connect r
  • 我的 Redis 自动生成的密钥

    我不知道我的 Redis 版本 4 0 9 到底发生了什么 我正在运行一个应用程序并使用 Redis 来存储我的数据库 但是 然后 Redis 自动创建 3 个新键 Backup1 Backup2 Backup3 并删除我的所有数据 这是我
  • 如何在多个Lua State(多线程)之间传递数据?

    我在中启动Redis连接池redis lua 通过从 C 调用 我得到了redis lua state 此 Lua 状态全局启动一次 仅在其他线程中启动get从中 当有一个 HTTP 请求 工作线程 时 我需要从redis lua stat
  • redis集群不断打印日志WSA_IO_PENDING

    当我启动redis集群的所有redis服务器时 所有这些服务器不断打印类似WSA IO PENDING clusterWriteDone的日志 9956 03 Feb 18 17 25 044 WSA IO PENDING writing
  • 如何在节点redis客户端上设置读取超时?

    在 github 上我没有看到读取超时的选项 https github com NodeRedis node redis https github com NodeRedis node redis There s connect timeo
  • Redis INCRBY 有限制

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

    我是 Redis 新手 想知道是否有办法能够await get通过它的键来获取值 直到该键存在 最小代码 async def handler data await self fetch key async def fetch key ret
  • 使用 Redis 命令 incr 和 expire 时的竞争条件

    根据redis文档 http redis io commands incr http redis io commands incr 在段落模式 速率限制器 2 较短的版本代码 value INCR ip IF value 1 THEN EX
  • Redis Docker compose无法处理RDB格式版本10

    我无法在 docker compose 文件中启动 redis 容器 我知道docker compose文件没问题 因为我的同事可以成功启动项目 我读到有一个删除 dump rdb 文件的解决方案 但我找不到它 我使用Windows机器 任
  • 使用 Sentinels 升级 Redis 的最佳实践?

    我有 3 个 Redis 节点 由 3 个哨兵监视 我进行了搜索 文档似乎不清楚如何最好地升级此类配置 我目前使用的是 3 0 6 版本 我想升级到最新的 5 0 5 我对这方面的程序有几个疑问 升级两个大版本可以吗 我在我们的暂存环境中执
  • Redis、会话过期和反向查找

    我目前正在构建一个网络应用程序 并想使用 Redis 来存储会话 登录时 会话会使用相应的用户 ID 插入到 Redis 中 并且过期时间设置为 15 分钟 我现在想实现会话的反向查找 获取具有特定用户 ID 的会话 这里的问题是 由于我无
  • 2 个具有共享 Redis 依赖的 Helm Chart

    目前 我有 2 个 Helm Charts Chart A 和 Chart B Chart A 和 Chart B 对 Redis 实例具有相同的依赖关系 如Chart yaml file dependencies name redis v
  • 如何使redis中的“HSET”子键“过期”?

    我需要使 Redis 哈希中所有超过 1 个月的密钥过期 这不可能 https github com antirez redis issues 167 issuecomment 2559040 为了保持 Redis 简单 https git
  • redis 2.8.7 Linux Sentinel环境配置问题,如何使其自启动,应该订阅什么?

    现在我们尝试使用 redis 2 8 7 作为缓存存储 来自使用 booksleeve 客户端的 NET Web 应用程序 目前看来这是一个非常有趣和令人兴奋的任务 redis 文档非常好 但由于缺乏真正的实践经验 我确实有几个关于如何正确
  • 使用redis进行树形数据结构

    我需要为基于树的键值开发一个缓存系统 与Windows注册表编辑器非常相似 其中缓存键是字符串 表示树中到值的路径 可以是原始类型 int string bool double 等 或子树本身 例如 key root x y z w val

随机推荐

  • 台式计算机怎么连接蓝牙 win10,win10台式电脑蓝牙怎么开启(开启电脑蓝牙的步骤图)...

    原标题 win10台式电脑蓝牙怎么开启 开启电脑蓝牙的步骤图 虽然WiFi无线连接现在是主流 但蓝牙无线连接仍然以独特的优势得以在许多设备中保留 例如Win10动态锁自动锁定功能就是利用电脑与手机的蓝牙连接实现的 下面MS酋长就来分享一下W
  • 找回微信聊天记录-unbaksdpak解包软件图文教程

    前几天用小米助手备份恢复后微信聊天记录丢失 上网找资料搞鼓了一天终于找回了聊天记录 在上个分享帖子里有详细介绍了找回过程 但有机友某些步骤看不懂 要我再出个图文教程 我想主要应该是GitHub上的解包软件不会用吧 这次主要讲一下unbaks
  • 3分钟入门:Blob 对象的了解与创建

    Blob 对象 Blob 英文全称 binary large object 是指二进制类型大对象 Blob 对象表示不可变的 类似文件对象的原始数据 即它是类似文件对象的二进制数据 可以像操作 File 对象一样操作 Blob 对象 但话又
  • Python入门——第一章 python编程基础

    Python入门 文章目录 Python入门 第一章 python编程基础 1 1 基本输入输出 1 1 1使用print 函数进行简单输出 chr 函数 print 输出到指定文件 print 输出年份 月份 日期 1 1 2使用prin
  • 给定一个整数,判断它能否被3,5,7整除,并输出以下信息:

    1 能同时被3 5 7整除 直接输出3 5 7 每个数中间一个空格 2 只能被其中两个数整除 输出两个数 小的在前 大的在后 例如 3 5或者3 7或者5 7 中间用空格分隔 ififa 3 只能被其中一个数整除 输出这个除数 4 不能被任
  • ESP32学习笔记(七) 复位和时钟

    ESP32学习笔记 七 复位和时钟 目录 ESP32学习笔记 一 芯片型号介绍 ESP32学习笔记 二 开发环境搭建 VSCode platformio ESP32学习笔记 三 硬件资源介绍 ESP32学习笔记 四 串口通信 ESP32学习
  • FFMPEG常用的一些命令介绍:音频录制、视频录制

    1 视频和音频单独抓取 如果指定输入格式和设备 则ffmpeg可以直接捕获视频和音频 Linux下捕获摄像头的数据保存成视频文件 ffmpeg f video4linux2 s 1280x720 i dev video0 test mp4
  • [从零开始学习FPGA编程-31]:进阶篇 - 基本时序电路-RS触发器(Verilog语言)

    作者主页 文火冰糖的硅基工坊 文火冰糖 王文兵 的博客 文火冰糖的硅基工坊 CSDN博客 本文网址 目录 前言 第1章 基本RS触发器 1 1 概述 1 2 R
  • Linux安装go环境

    Linux安装go环境 安装go需要以下步骤 安装go需要以下步骤 下载安装包 到官网 https golang org dl 下载安装包 选择对应的操作系统和架构 比如Linux的64位系统可以选择 gox x x linux amd64
  • C语言_字符串拼接函数strcat使用及实现

    字符串拼接函数strcat 01 字符串拼接函数strcat函数原型 char strcat char dest const char src 作用 把src所指向的字符串 包括 0 复制到dest所指向的字符串后面 删除 dest原来末尾
  • LeetCode·每日一题·1080. 根到叶路径上的不足节点·递归

    作者 小迅 链接 https leetcode cn problems insufficient nodes in root to leaf paths solutions 2279048 di gui zhu shi chao ji xi
  • Eclipse中引用依赖库library失败的原因

    http blog csdn net dennisruan article details 50730641
  • C语言常见问题——数组初始化的四种方法

    有一回 小易同学对我说 你学过编程吗 我略略点一点头 他说 学过编程 我便考一考你 在使用数组之前 应不应该初始化数组 我暗想 这么简单的问题 也配考我么 不只是数组 在使用任何变量之前 都应该对变量进行初始化 这是一个编程的好习惯 可以有
  • element plus安装引入使用大坑

    最近做毕设 准备用vue写前端 自然用到了elementplus 处处踩雷必须记录 首先是版本对应 vue2对应element ui vue3对应element plus 强行安装只会出错 另外安装的时候需要把已经npm run的项目停下来
  • Linux内核分析与应用

    Linux 内核分析与应用 1 蜻蜓点水 可作抛砖引玉 1 概述 用到的几个命令 insmod dmesg 2 lsmod 3 章节测试 部分可参考 4 lt 1 gt Linux得以流行 是因为遵循了GPL协议 并不是因为遵循POSIX标
  • ElasticSearch6.x 之索引

    1 创建索引 创建索引语法规则 http elasticsearch 服务器访问地址 索引名称 Put请求 无参数 实列 http 192 168 1 74 9200 security 在elasticsearch 服务器上创建名为secu
  • flutter实现验证码自动填充

    UI效果图 实现思路 1 使用Stack层叠布局 2 创建 4 个 Container 作为显示 4个验证码的 视图 3 创建TextField覆盖在 Container 上面 设置字体位透明颜色 4 监听TextField 输入 填充 4
  • redis中的事务、lua脚本和管道的使用场景

    事务 redis中的事务并不像mysql中那么完美 只是简单的保证了原子性 redis中提供了四个命令来实现事务 MULTI 类似于mysql中的BEGIN EXEC 类似于COMMIT DISCARD类似于ROLLBACK WATCH则是
  • 唐宇迪学习笔记4:Python可视化库——Seaborn

    目录 一 整体布局风格设置 五种主题风格 1 darkgrid 2 whitegrid 3 dark 4 white 5 ticks 二 风格细节设置 1 指定画图距离轴线的位置 2 指定轴的隐藏与否 3 指定多个风格 4 指定布局 pap
  • Centos7 安装redis集群哨兵模式

    一 整体哨兵模式规划 redis节点规划 6381 master 6382 slave 6383 slave 6384 slave sentinel模式节点规划 26381 26382 二 Redis主从安装步骤 1 单机版Redis安装