redis学习(十八) 部署redis哨兵模式

news2024/11/18 20:40:32

文章目录

  • 前言
  • 一、搭建主从数据库
  • 二、搭建哨兵
  • 三、验证哨兵


前言

哨兵模式核心还是主从复制,只不过在相对于主从模式在主节点宕机导致不可写的情况下,多了一个竞选机制:在所有的从节点竞选出新的主节点。每一个哨兵都是一个独立的sentinel进程,作为进程,它会独立运行。

当master挂掉之后,哨兵会自动从slave中选一个作为master,若master重新启动,master则会转化为现有的master下的一个slave,当slave切换时,会通过发布订阅方式,将slave所对应的master更改。

哨兵本身也有单点故障的问题,所以在一个一主多从的Redis系统中,可以使用多个哨兵进行监控,哨兵不仅会监控主数据库和从数据库,哨兵之间也会相互监控。每一个哨兵都是一个独立的进程,作为进程,它会独立运行。


一、搭建主从数据库

主数据库:172.16.10.169
从数据库:172.16.10.170

从数据库可以有多个,这里以一个为例
Master数据库:
搭建过程略,参考单节点的
修改redis的配置文件:

#表示监听本机哪个网卡地址,因为我们要让slave能连接master,所以让redis监听在一个外部网卡而不仅仅是127.0.0.1
bind 172.16.10.169
#设置密码(也可以不设置)
requirepass 123456  

修改完后重启redis

Salve数据库:

搭建过程略,参考单节点的
修改redis的配置文件:
搜索/REPLICATION,如果Redis版本低于5.0,搜索SLAVE
修改配置:

replicaof 192.168.118.133 6379		#找到replicaof参数,这个是配置master IP和端口的,5.0之前的版本叫slaveof
masterauth 123456					#如果master设置了密码,还要配置master的密码,这样slave才能连的上master
replica-read-only yes				#slave只读,默认就是只读,保持默认即可,主从模式下master读写,slave只读

修改完后重启redis

查看主从状态
使用客户端连接master和slave
输入命令:info Replication
Master:
在这里插入图片描述
Slave:
在这里插入图片描述
Slave运行命令Keys *,会发现主节点的数据同步到了从节点
在这里插入图片描述

二、搭建哨兵

这里仅配置一个哨兵,在master上配置一个哨兵,当然,如果你需要多个哨兵,还可以在每个slave上配置哨兵,或者在同一台机器使用不通sentinel.conf配置文件启动多个哨兵。

将安装目录下的sentinel.conf拷贝到/etc/redis下

cp sentinel.conf /etc/redis

修改/etc/redis/sentinel.conf

bind 172.16.10.169
port 26379
daemonize yes   #哨兵的启动模式,yes是后台启动
pidfile /var/run/redis-sentinel.pid  #哨兵的pid文件存放位置
logfile "/var/run/log/redis-sentinel.log" #哨兵的日志文件存放位置
dir /tmp             #哨兵进程的工作目录,默认就是/tmp

#哨兵监听的master数据库,mymaster是为主数据库起的名称,可以随便起个名字,后面是master的ip和端口
# 最后面的1表示选举个数,含义是需要多少个哨兵认为master挂了才认定master挂掉,这里我设置为1是因为我只有一个哨兵,如果你配置了多个哨兵,建议配置2以上数字。
sentinel monitor mymaster 172.16.10.169 6379 1				
sentinel auth-pass mymaster 123456								#配置master的登陆密码,mymaster是你配置的master名称
sentinel down-after-milliseconds mymaster 30000					#30秒内master无响应则认为master挂掉
acllog-max-len 128												#保持默认即可

#master重新选举之后,其它节点能同时并行进行数据同步的台数有多少台
#显然该值越大,则所有slave能同步完成的速度越快,但如果此时刚好有人访问slave数据,可能造成读取失败,最保守的值建议设为1
#即同一时间只能有一台进行数据同步,这样其它slave还能继续提供服务,但是所有的slave数据同步完成就会显得缓慢。
sentinel parallel-syncs mymaster 1
sentinel failover-timeout mymaster 180000		#故障转移超时时间,指在该时间内如果故障转移没有成功,则会再发起一次故障转移
sentinel deny-scripts-reconfig yes				#保持默认即可
SENTINEL resolve-hostnames no					#保持默认即可
SENTINEL announce-hostnames no					#保持默认即可

创建系统服务
vi /etc/systemd/system/redis-sentinel.service

[Unit]
Description=redis sentinel
After=redis.service

[Service]
PIDFile=/var/run/redis_sentinel.pid
ExecStart=/usr/local/redis/bin/redis-sentinel /etc/redis/sentinel.conf
ExecStop=/usr/local/redis/bin/redis-cli -p 26379 shutdown
ExecReload=/bin/kill -s HUP $MAINPID

[Install]
WantedBy=multi-user.target
systemctl daemon-reload
systemctl enable redis-sentinel
systemctl start redis-sentinel

登录哨兵,查看master和slave的信息

/usr/local/redis/bin/redis-cli -h 172.16.10.169 -p 26379
SENTINEL master mymaster

在这里插入图片描述

 SENTINEL REPLICAS mymaster

在这里插入图片描述

三、验证哨兵

将Master挂掉
systemctl stop redis

登录哨兵,查看master,发现之前slave已经变成了master, master变成了slave,位置互换了。

/usr/local/redis/bin/redis-cli -h 172.16.10.169 -p 26379

在这里插入图片描述
在这里插入图片描述
登录170,查看其角色,发现变成了master
在这里插入图片描述
重启169的redis,查看其角色,发现变成了slave,也验证了两个redis实例角色的切换
在这里插入图片描述

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

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

相关文章

PCB 布线技术~PCB结构:Traces,电源平面

PCB导体:Traces • 铜是PCB中最常用的导体 – 走线或连接器一般通过镀金来提供一个抗腐蚀的电传导特性 – 走线的宽度和长度-由PCB布线工程师控制 • 在通常的制造工艺下,走线的宽度和之间的间距一般要≥5 mil – 走线厚度-制造工艺的变量 • 典型值 0.5oz – 3oz •…

Linux---目录结构、绝对路径与相对路径、命令基础格式、ls命令

1. Linux的目录结构 Linux的目录结构是一个树型结构。 Windows 系统可以拥有多个盘符, 如 C盘、D盘、E盘。 Linux没有盘符这个概念, 只有一个根目录 /, 所有文件都在它下面。 在Linux系统中,路径之间的层级关系,使用:/ 来表示。 Linux只…

Inodb引擎 内存+磁盘+MVCC(多版本并发控制)

目录 逻辑存储结构 Innodb引擎内存结构介绍 Innodb引擎磁盘结构介绍 内存和磁盘交互 MVCC(多版本并发控制)原理 预备知识 mvcc基本概念 mvcc的具体实现 总的来说mvcc原理: 逻辑存储结构 Innodb引擎内存结构介绍 Buffer Pool(缓冲池) 缓冲池是内存的一个区域&am…

001 hive简介

一. hive概述 1. hive的产生背景 mapreduce程序大部分解决的问题是结构化数据,而解决结构化数据最佳方案是一条sql语句 hive出现的主要原因是解决mapreduce开发成本高的问题。但hive不能完全替代mr,只能处理mr中的结构化数据。 2. hive是什么 hive提…

【数据结构】常见数据结构汇总

文章目录 前言一、数组二、链表三、栈四、队列五、哈希表--散列表六、堆七、树八、图参考与感谢 前言 数据结构是计算机存储、组织数据的方式。一种好的数据结构可以带来更高的运行或者存储效率。数据在内存中是呈线性排列的,但是我们可以使用指针等道具&#xff0…

hive学习入门

第四章 HQL基础语法 Hive中的语句叫做HQL语句,是一种类似SQL的语句,基本上和SQL相同但是某些地方也是有很大的区别. 4.1 数据库操作 创建数据库 1.创建一个数据库,数据库在HDFS上的默认存储路径是/hive/warehouse/*.db。 create database hive01; 避免要创建的数据库已经存…

算法设计与分析:分治法

目录 第1关:分治法介绍 任务描述: 相关知识: 基本概念: 解题步骤: 实例演示: 关键代码: 编程要求: 测试说明: 第2关:归并排序 任务描述:…

网安行业「iPhone时刻」!深信服首秀安全GPT技术应用

5月18日,深信服正式对外首秀安全GPT技术应用。深信服科技董事长何朝曦在现场分享了安全GPT技术应用的研发背景、技术应用特点及未来设想。深信服科技研发总经理梁景波、深信服安全攻防专家演示了安全GPT技术应用在XDR平台上的效果,包括高级威胁检测、安全…

Midjourney8种风格介绍+使用场景(2)

引言 我相信大家都或多或少玩过Midjourney,但是要形成自己独特的个人IP,那么有必要知晓画作的一些基础知识,如果你没有时间实践,没有关系,我来操作,定期分享画作相关知识,既简单又方便&#xff…

软件测试面试常常遇到的十大“套路”

面试中,如何回答HR提出的问题很大程度上决定了面试能不能成功。 下面是软件测试人员在面试过程中经常被问到的10个问题,告诉你怎么回答才不会被面试官套路...... 一、请你做一个自我介绍 误区: 一般人回答这个问题过于平常,只说…

5th-Generation Mobile Communication Technology(四)

目录 一、5G/NR 1、 快速参考(Quick Reference) 2、5G Success 3、5G Challenges 4、Qualcomm Videos 二、PHY and Protocol 1、Frame Structure 2、Numerology 3、Waveform 4、Frequency Band 5、BWP 6、Synchronization 7、Beam Management 8、CSI Fra…

闭包?什么是闭包?--JavaScript前端

大厂面试题分享 面试题库 前后端面试题库 (面试必备) 推荐:★★★★★ 地址:前端面试题库 web前端面试题库 VS java后端面试题库大全 闭包的背景 由于js中只有两种作用域,全局作用域和函数作用域(模块…

模拟封装C标准库

文章目录 1. 准备工作2. my_fopen3. my_fwrite4. my_fclose和my_fflush5. syncfs 1. 准备工作 举个例子: 这里我们要实现my_fopen,my_fwrite和my_fclose这三个函数,并封装MyFILE。 这是MyFILE的封装,然后我们把三个函数接口完成…

Seaborn 可视化学习

Abstract 主要讲述绘制强化学习结果时遇到的seaborn操作。因此,本文主要讲述Lineplot的用法,以及图片的相关设置 线条绘制 import seaborn as sns import pandas as pd import matplotlib.pyplot as plt import numpy as np# 单线绘制 data pd.DataF…

接口测试全流程扫盲,让我看看有哪些漏网之鱼

目录 扫盲内容: 1.什么是接口? 2.接口都有哪些类型? 3.接口的本质及其工作原理是什么? 4.什么是接口测试? 5.问什么要做接口测试? 6.怎样做接口测试? 7.接口测测试点是什么?…

蓝桥杯2020年第十一届省赛真题-回文日期python两种方法题解(贪心+datetime)

题目 原题链接:回文日期 - 蓝桥云课 (lanqiao.cn) 题目描述 2020 年春节期间,有一个特殊的日期引起了大家的注意:2020 年 2 月 2 日。因为如果将这个日期按 “yyyymmdd” 的格式写成一个 8 位数是 20200202,恰好是一个回文数。…

如何系统自学黑客(网络安全)?

前言: 黑客技能是一项非常复杂和专业的技能,需要广泛的计算机知识和网络安全知识。下面是一些你可以参考和学习的步骤,以系统自学黑客(网络安全): 在学习之前,要给自己定一个目标或者思考一下…

SpringBoot日志配置(四十七)

当一切被遗忘,那么就回到最初的地方 上一章简单介绍了SpringBoot配置文件敏感信息加密(四十六) , 如果没有看过,请观看上一章 这一章节,我们学习一下日志配置. 参考文章: Spring Boot 日志配置(超详细) 一. 日志配置处理 我们创建一个普通的 SpringB…

docker-compose 实现Seata Server高可用部署 | Spring Cloud 51

一、前言 Seata 是一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务。Seata 将为用户提供了 AT、TCC、SAGA 和 XA 事务模式,为用户打造一站式的分布式解决方案。 TC (Transaction Coordinator) - 事务协调者 维护全局和分支事…

excel根据不同分类动态设置不同下拉列列表

有这样一个需求,有很多个系统,需要在excel中下拉选择其系统一级分类、二级分类、三级分类,不同的一级分类对应不同的二级分类列表,不同的二级分类对应不同的三级分类列表。 针对这个需求,我们采用了excel/wps中的数据…