Redis主从+哨兵集群(基于CentOS-8.0)高可用部署方案

目录

一、环境描述

二、Redis 主从集群部署

2.1 Redis下载

2.2 Redis解压 和移动文件

2.4 编译、安装Redis

2.6 新建 bin 和 etc 文件夹

2.7 分发Redis

2.8 配置

2.8.1 主节点配置

2.8.2 从节点配置

2.9 启动Redis服务

2.10 验证主从服务

2.11 查看节点角色信息

2.12 查看节点信息

2.13 测试发送信息

三、Redis 哨兵集群部署

3.1 哨兵配置

3.2 启动哨兵

3.3 哨兵检查、容灾切换验证

3.3.1登录redis

3.3.2查看哨兵指令

3.3.3 容灾切换测试

3.3.3.1 登录主节点

3.3.3.2 关闭redis

3.3.3.3  登录进入一台从节点

3.3.3.4 查看新的集群信息


提示:对Redis 主从架构、哨兵机制等技术原理不清楚的,可先参考阅读我的技术博客《Redis主从/哨兵机制原理介绍》

一、环境描述

系统环境描述:本教程基于CentOS 8.0版本虚拟机
集群规划信息:

Redis版本:7.2.3

二、Redis 主从集群部署

2.1 Redis下载

官网:Download | Redis

2.2 Redis解压 和移动文件

tar -zxvf redis-7.2.3.tar.gz
mv redis-7.2.3 /usr/local/

2.4 编译、安装Redis

cd /usr/local/redis-7.2.3
makecd src/
make install

2.6 新建 bin 和 etc 文件夹

cd  /usr/local/redis-7.2.3
mkdir etc
mkdir bincp redis.conf sentinel.conf /etc/cd src/cp mkreleasehdr.sh redis-benchmark redis-check-aof redis-check-rdb redis-cli redis-server redis-sentinel /usr/local/redis-7.2.3/bin/

2.7 分发Redis

scp -r redis-7.2.3/ root@node3:/usr/local/
scp -r redis-7.2.3/ root@node4:/usr/local/

2.8 配置

2.8.1 主节点配置

vim redis.confbind 0.0.0.0
port 6379
protected-mode no
daemonize yes
logfile ./redis.log
requirepass xiaoning
masterauth xiaoning

2.8.2 从节点配置

vim redis.confbind 0.0.0.0
port 6379
protected-mode no
daemonize yes
logfile ./redis.log
requirepass xiaoning
masterauth xiaoning
replicaof 192.168.31.215 6379

2.9 启动Redis服务

./redis-server ../etc/redis.conf

2.10 验证主从服务

2.11 查看节点角色信息

#登录redis
./redis-cli -c --pass xiaoning
#查看节点角色信息
role

2.12 查看节点信息

#登录redis
./redis-cli -c --pass xiaoning#查看主从节点信息
info replication

2.13 测试发送信息

主节点:

set name xiaoning

从节点:

get name

ok ,从以上测试结果来看,我们的主从(Master-Slave模式)部署完成,下面继续介绍哨兵机制部署。

三、Redis 哨兵集群部署

3.1 哨兵配置

cd etc/
vim sentinel.conf#端口默认为26379。
port 26379
#关闭保护模式,可以外部访问。
protected-mode no
#设置为后台启动。
daemonize yes
#日志文件。
logfile ./sentinel.log
#指定主机IP地址和端口,并且指定当有2台哨兵认为主机挂了,则对主机进行容灾切换。
sentinel monitor mymaster 192.168.31.215 6379 2
#当在Redis实例中开启了requirepass,这里就需要提供密码。
sentinel auth-pass mymaster xiaoning
#这里设置了主机多少秒无响应,则认为挂了。
sentinel down-after-milliseconds mymaster 3000
#主备切换时,最多有多少个slave同时对新的master进行同步,这里设置为默认的1。
sentinel parallel-syncs mymaster 1
#故障转移的超时时间,这里设置为三分钟。
sentinel failover-timeout mymaster 180000

3.2 启动哨兵

./redis-sentinel ../etc/sentinel.conf

3.3 哨兵检查、容灾切换验证

3.3.1登录redis

redis-cli -c -p 26379

3.3.2查看哨兵指令

info sentinel

3.3.3 容灾切换测试

3.3.3.1 登录主节点
./redis-cli -c --pass xiaoning
3.3.3.2 关闭redis
#关闭redis,模拟redis宕机
shutdowm
#d等一分钟,然后重新启动该节点redis服务
./redis-server ../etc/redis.conf

我们发现,执行shutdown 命令后,该服务器的redis服务已经停了。

3.3.3.3  登录进入一台从节点
./redis-cli -c --pass xiaoning
3.3.3.4 查看新的集群信息
#查看该节点角色
role
#查看节点信息 
info replication

我们可以看到,master节点由原来的192.168.31.215,变成了192.168.31.167。

我们重新启动原来master节点的redis服务,登录后,查看信息发现,它由原来的redis master角色,变成了的slave角色。

经过以上验证,我们发现哨兵机制起了作用,和预期相符合,哨兵机制部署成功!

好了,本次分享就到这里,欢迎大家继续阅读《Redis》专栏其他文章内容,如果有帮助到大家,欢迎大家点赞+关注+收藏,有疑问也欢迎大家评论留言!

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

STM32 TIM输出比较、PWM波形

单片机学习! 目录 一、输出比较简介 二、PWM简介 三、输出比较通道 3.1通用定时器的输出比较部分电路 3.2高级定时器的输出比较部分电路 四、输出模式控制器 五、PWM基本结构 六、PWM参数计算 总结 前言 文章讲述STM32定时器的输出比较功能,它主…

GAMES104-现代游戏引擎:从入门到实践 - 物理引擎课程笔记汇总

文章目录 0 入门资料1 物理引擎基本概念Actor & shapesRigid body dynamicsCollision DetectionCollision Resolution 应用与实践Character controllerRagdoll 0 入门资料 GAMES104-现代游戏引擎:从入门到实践_课程视频_bilibiliGAMES104官方账号 - 知乎课程主页…

OceanBase基础概念

文章目录 基本概念介绍集群、Zone和OB ServerRootService总控服务多租户机制,资源隔离,数据隔离资源池创建租户检查集群状态查看系统日志 基本概念介绍 集群、Zone和OB Server 一个集群由多个Zone组成,给集群内的一批机器打上同一个tag&#…

综合评价 | 基于EW、EW-BP、EW-ELM的地区发展水平综合评价(Matlab)

目录 效果一览基本介绍程序设计参考资料 效果一览 基本介绍 综合评价 | 基于EW、EW-BP、EW-ELM的地区发展水平综合评价(Matlab) 程序设计 完整程序和数据获取方式:私信博主回复基于EW、EW-BP、EW-ELM的地区发展水平综合评价(Matl…

ZooKeeper 实战(五) Curator实现分布式锁

文章目录 ZooKeeper 实战(五) Curator实现分布式锁1.简介1.1.分布式锁概念1.2.Curator 分布式锁的实现方式1.3.分布式锁接口 2.准备工作3.分布式可重入锁3.1.锁对象3.2.非重入式抢占锁测试代码输出日志 3.3.重入式抢占锁测试代码输出日志 4.分布式非可重入锁4.1.锁对象4.2.重入…

【MySQL】数据处理之增删改

文章目录 一、增加(插入)INSERT INTO...VALUES(...,...)VALUES的方式添加情况一:为表的所有字段按默认顺序插入数据情况二:为表的指定字段插入数据情况三:同时插入多条记录 将查询结果插入到表中 二、修改(…

CTF CRYPTO 密码学-3

题目名称:反编译 题目描述: 分析 题目给出一个pyc后缀的文件,需要使用uncompyle6模块去还原成py文件 uncompyle6简介 uncompyle6 是一个 Python 反编译器,它能够将 Python 字节码(.pyc 文件)转换回源代码&…

数据结构之栈和队列

数据结构之栈和队列 1、栈1.1、栈的定义及基本运算1.2、栈的存储结构 2、队列2.1、队列的定义及基本运算2.2、队列的存储结构2.3、队列的应用 数据结构是程序设计的重要基础,它所讨论的内容和技术对从事软件项目的开发有重要作用。学习数据结构要达到的目标是学会从…

2024华数杯国际赛A题16页完整思路+五小问py代码数据集+后续高质量参考论文

这回带大家体验一下2024“华数杯”国际大学生数学建模竞赛呀! 完整内容获取在文末 此题涉及到放射性废水从日本排放到海洋中的扩散问题,以及对环境和人类健康的潜在影响。 ## 问题重述 1. **预测污染范围和程度:** - 使用数学模型描述放射性…

LeetCode 104. 二叉树的最大深度

104. 二叉树的最大深度 给定一个二叉树 root ,返回其最大深度。 二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。 示例 1: 输入:root [3,9,20,null,null,15,7] 输出:3示例 2: 输入&#xff1…

多维时序 | Matlab实现GRO-CNN-BiLSTM-Attention淘金算法优化卷积神经网络-双向长短期记忆网络结合注意力机制多变量时间序列预测

多维时序 | Matlab实现GRO-CNN-BiLSTM-Attention淘金算法优化卷积神经网络-双向长短期记忆网络结合注意力机制多变量时间序列预测 目录 多维时序 | Matlab实现GRO-CNN-BiLSTM-Attention淘金算法优化卷积神经网络-双向长短期记忆网络结合注意力机制多变量时间序列预测效果一览基…

RabbitMQ交换机(1)

1.交换机Exchange RabbitMQ消息传递模型的核心思想是: 生产者生产的消息从不会直接发送到队列。实际上,通常生产者甚至都不知道这些消息传递传递到了哪些队列中。 相反,生产者只能将消息发送到交换机(exchange),交换机工作的内容非常简单&am…

Python中如何简化if...else...语句

一、引言 我们通常在Python中采用if...else..语句对结果进行判断,根据条件来返回不同的结果,如下面的例子。这段代码是一个简单的Python代码片段,让用户输入姓名并将其赋值给变量user_input。我们能不能把这几行代码进行简化,优化…

【数据结构】红黑树

导语 之前平衡二叉树讲解中,可以了解到AVL在插入或删除频繁的场景,需要消耗大量的时间来调整,使树重新满足平衡条件。红黑树就此作出优化,在查询速率和平衡调整中寻找平衡,放宽了树的平衡条件,从而可以用于…

Java实现海南旅游景点推荐系统 JAVA+Vue+SpringBoot+MySQL

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 用户端2.2 管理员端 三、系统展示四、核心代码4.1 随机景点推荐4.2 景点评价4.3 协同推荐算法4.4 网站登录4.5 查询景点美食 五、免责说明 一、摘要 1.1 项目介绍 基于VueSpringBootMySQL的海南旅游推荐系统&#xff…

YUM仓库和NFS共享

目录 一、yum仓库 1. yum仓库介绍 1.1 简介 1.2 实现过程 1.3 实现安装服务 2. yum配置文件及命令 2.1 yum配置文件 2.1.1 yum主配置文件 2.1.2 仓库设置文件 2.1.3 日志文件 2.2 yum命令详解 2.2.1 查询 2.2.2 yum安装升级 2.2.3 软件卸载 3. 搭建仓库的方式 …

使用 Categraf 采集 Nginx 指标

1. 前言 工作中需要监控 Nginx 的指标,选用的指标采集器是 Categraf,特此记录下,以备后用。 此文档并未详细记录详细的操作细节,只记录了大概的操作步骤,仅供参考。 2. 采集基础指标 2.1. 暴露 Nginx 自带的指标采…

SparkSQL——DataFrame

DataFrame Dataframe 是什么 DataFrame 是 SparkSQL中一个表示关系型数据库中 表的函数式抽象, 其作用是让 Spark处理大规模结构化数据的时候更加容易. 一般 DataFrame可以处理结构化的数据, 或者是半结构化的数据, 因为这两类数据中都可以获取到 Schema信息. 也就是说 DataFra…

Kafka系列(四)

本文接kafka三,代码实践kafkaStream的应用,用来完成流式计算。 kafkastream 关于流式计算也就是实时处理,无时间概念边界的处理一些数据。想要更有性价比地和java程序进行结合,因此了解了kafka。但是本人阅读了kafka地官网&#…

【每日一题】2744. 最大字符串配对数目-2024.1.17

题目: 2744. 最大字符串配对数目 给你一个下标从 0 开始的数组 words ,数组中包含 互不相同 的字符串。 如果字符串 words[i] 与字符串 words[j] 满足以下条件,我们称它们可以匹配: 字符串 words[i] 等于 words[j] 的反转字符…