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
make

cd src/
make install

2.6 新建 bin 和 etc 文件夹

cd  /usr/local/redis-7.2.3
mkdir etc
mkdir bin

cp 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.conf

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

2.8.2 从节点配置

vim redis.conf

bind 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》专栏其他文章内容,如果有帮助到大家,欢迎大家点赞+关注+收藏,有疑问也欢迎大家评论留言!

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

k8s的存储卷、数据卷---动态PV创建

当发布PVC之后可以生成PV,还可以在动态服务器上直接生成挂载目录。PVC直接绑定和使用PV。 动态PV需要两个组件 存储卷插件:Provisioner(存储分配器)根据定义的属性创建PV StorageClass:定义属性 存储卷插件 存储卷插件:k8s本…

从“AI证件照”到“AI译制片”,爆款AIGC应用的商业化迷思

文 | 脑极体 让郭德纲飙英文、让霉霉说中文的翻译视频生成工具HeyGen和掀起AI证件照热潮的“妙鸭相机”一样,在一阵疯狂刷屏之后,又迅速在各大群里销声匿迹了。 十月份,由HeyGen制作的各种明星跨语言翻译视频,在全网疯传&#xf…

C#微信公众号HIS预约挂号系统源码

微信公众号预约挂号系统、支付宝小程序预约挂号系统主要是让自费、医保患者在手机上就能实现就医全过程,实时预约挂号、自费、医保结算,同时还可以查询检查检验报告等就诊信息,真正实现了让信息“多跑路”,让群众“少跑腿”。系统…

【C++】- 类和对象(运算符重载!!const!!详解!!)

类和对象③ 介绍运算符重载赋值运算符重载运算符重载const 在学习C语言时,我们首先接触的就是变量,再深入学习,我们可以利用运算符对变量进行操作,当我们使用C编写程序时,经常会遇到一些需要对特殊的例如自定义数据类型…

制造工厂ERP系统:从数字销售-生产到财务管理,掌握企业数字化十大核心!

在快速发展的数字化时代,企业(尤其是传统生产制造行业)面临着诸多挑战与机遇。无论是客户体验、供应链管理还是内部流程优化,数字化都在发挥着关键作用。为了更好地应对数字化带来的挑战和机遇为了更好地应对市场变化和提高竞争力…

定了!又一电商巨头拥抱鸿蒙生态

鸿蒙生态 未来可期 近日,鸿蒙生态圈又发布一个令人振奋的消息:京东正式适配原生鸿蒙操作系统!这是继支付宝、微信之后,又一家大厂拥抱鸿蒙的重要举措。可以说,拥抱鸿蒙已经成为了大势所趋! ​ 随着大厂纷…

本地静态资源打包出来,本地配置ng访问服务器(uniapp打包成h5后,使用打包资源连接测试环境测试)

1.下载ng https://nginx.org/en/download.html 2.解压下载的压缩包 3.打包h5静态资源 4.将打包出来的资源放入ng -》html文件夹下面 5.进入ng-》conf-》nginx.conf 进行转发配置 6.启动ng服务,点击nginx.exe 7.浏览器直接访问http://localhost:8081/#/&#x…

Linux------进程的fork()详解

目录 前言 一、fork()的使用 二、fork()的返回值 我们为什么要创建子进程? 父进程与子进程的分流 三、fork的一些难理解的问题 1.fork干了什么事情? 2.fork为什么会有两个返回值 3.fork的两个返回值,为什么会给父进程返回子进程pid…

05--多表操作

1、多表操作 现实生活中,(班级)实体与(学生)实体之间肯定是有关系的,那么我们在设计表的时候,就应该体现出(班级)表与(学生)表之间的这种关系&am…

学习视频一些杂乱的东西

文章目录 ref获取dom元素监听深层的某个属性? 可选链操作符 和 ?? 双问号表达式v-slot 语法糖作用域插槽动态插槽 初始化数组骚操作数字滚动 -> gsapstyle妙招新奇的原型链 object.createB站笔记链接JS相关设计模式ajaxsvgvue3scsswebpack内存泄漏 ref获取dom元素 直接给…

Angular系列教程之组件

文章目录 前言组件的基本概念组件与指令的关系在模板中使用组件总结 前言 在Angular中,组件是构建Web应用程序的核心单元。它们允许我们将UI划分为独立且可重用的部分,并通过数据绑定和事件处理等机制来实现交互性。本文将介绍Angular组件的基本概念&am…

如何公网远程访问Axure RP制作的本地web页面【内网穿透】

文章目录 前言1.在AxureRP中生成HTML文件2.配置IIS服务3.添加防火墙安全策略4.使用cpolar内网穿透实现公网访问4.1 登录cpolar web ui管理界面4.2 启动website隧道4.3 获取公网URL地址4.4. 公网远程访问内网web站点4.5 配置固定二级子域名公网访问内网web站点4.5.1创建一条固定…

❤ Uniapp使用三( 打包和发布上线)

❤ Uniapp使用三( 打包和发布上线) 一、介绍 什么是 uniapp? uniapp 是一种基于 Vue.js 的多平台开发框架,它可以同时用于开发安卓、iOS、H5 等多个平台。因此,只需要写一次代码就可以在多个平台上运行,提高了开发效率。 打包…

蓝桥杯 彩灯与任务

题目描述 输入样例 5 5 5 4 3 3 9 R 1 C 4 R 5 A 3 R 2 输出样例 5 3 3 思路 第一眼读不懂旋转是啥意思&#xff0c;根据样例连蒙带猜猜出来&#xff0c;其实就是把整个数组中的挪动几个位置。也很自然的按照题意写出来如下代码&#xff1a; #include <iostream> using…

如果你正在学自动化测试,那么请你仔细看完这篇文章

接触了不少同行&#xff0c;由于他们之前一直做手工测试&#xff0c;现在很迫切希望做自动化测试&#xff0c;其中不乏工作5年以上的人。 本人从事软件自动化测试已经近5年&#xff0c;从server端到web端&#xff0c;从API到mobile&#xff0c;切身体会到自动化带来的好处与痛楚…

kylin集群负载均衡(kylin3,hbaseRIF问题)

hbase历险记 目录 hbase历险记 寻找问题 分析原因 解决方案 方案1&#xff08;资源问题、失败&#xff09; 方案2&#xff08;成功&#xff09; 寻找问题 不知道你是不是有这样的疑惑。我kylin是个单机&#xff0c;我使用的hbase是个集群&#xff0c;但内存全在某一台机…

高并发缓存问题分析以及分布式锁的实现

一,场景概述: 在高并发的环境下,比如淘宝,京东不定时的促销活动,大量的用户访问会导致数据库的性能下降,进而有可能数据库宕机从而不能产生正常的服务,一般一个系统最大的性能瓶颈&#xff0c;就是数据库的io操作,如果发生大量的io那么他的问题也会随之而来。从数据库入手也是…

Python基础知识:整理13 利用pyecharts生成折线图

首先需要安装第三方包pyecharts 1 基础折线图 # 导包&#xff0c;导入Line功能构建折线图对象 from pyecharts.charts import Line # 折线图 from pyecharts.options import TitleOpts # 标题 from pyecharts.options import LegendOpts # 图例 from pyecharts.options im…

CSAPP阅读笔记-程序的机器级表示

程序的机器级表示 计算机执行机器代码&#xff0c;用字节序列编码低级的操作&#xff0c;包括处理数据、管理内存、读写存储设备上的数据&#xff0c;以及利用网络通信。编译器基于编程语言的规则、目标机器的指令集和操作系统遵循的惯例&#xff0c;经过一系列的阶段生成机器…