Redis7搭建主从+哨兵通俗易懂

背景前提–用到的命令

ps -ef |grep redis
redis服务器启动(精确启动配置文件位置)
redis-server redis6379.conf 
redis-server redis6380.conf 
redis-server redis6381.conf 
redis客户端登录
redis-cli -a 123456 -p 6379
redis-cli -a 123456 -p 6380
redis-cli -a 123456 -p 6381
redis客户端登录后查看角色  master/slave 
info replication 
redis如何关闭服务器 
redis登录客户端后  输入 shutdown
redis退出客户端但不关闭服务器  quit

哨兵启动
redis-sentinel sentinel26379.conf --sentinel
redis-sentinel sentinel26380.conf --sentinel
redis-sentinel sentinel26381.conf --sentinel
哨兵关闭
redis-cli -p 26379 shutdown
redis-cli -p 26380 shutdown
redis-cli -p 26381 shutdown

背景前提1

安装支持 文件导入命令 rz 然后解压 tar -zxvf redis-7.0.10.tar.gz
将解压在 /opt 目录下redis-7.0.10文件
在这里插入图片描述

背景前提2拷贝文件至redis-7.0.10的新建目录myredis下,主机从机步骤一致

拷贝命令 cp redis.conf /myredis
redis支持哨兵 sentinel、集群cluster
在这里插入图片描述

背景前提3—主机master

在这里插入图片描述

背景前提4—从机2为例

在这里插入图片描述

背景前提5-- 关闭虚拟机之间的防火墙

启动: systemctl start firewalld
关闭: systemctl stop firewalld
查看状态: systemctl status firewalld 
开机禁用  : systemctl disable firewalld
开机启用  : systemctl enable firewalld
    
添加 :firewall-cmd --zone=public --add-port=80/tcp --permanent    (--permanent永久生效,没有此参数重启后失效)
重新载入: firewall-cmd --reload
查看: firewall-cmd --zone= public --query-port=80/tcp
删除: firewall-cmd --zone= public --remove-port=80/tcp --permanent

背景前提5—主机和从机以及哨兵理论上需要6台虚拟机

1、redis主机和从机ip 和端口

主机master ip和端口			192.168.154.128 6379
从机slave1 ip和端口			192.168.154.129 6380
从机slave2 ip和端口			192.168.154.130 6381

2、主机master修改配置文件

工作目录是在根目录下 即创建myredis是 要 mkdir /myredis 否则报错 dir /myredis

daemonize yes
#bind 127.0.0.1 -::1
protected-mode no
port 6379
#工作目录是在根目录下 即创建myredis是 要 mkdir /myredis 否则报错 
dir /myredis          
pidfile /var/run/redis_6379.pid
# 日志目录
logfile "/myredis/6379.log"
requirepass "123456"  
#redis数据库保存文件地址  在工作目录的下边         
dbfilename dump6379.rdb
appendonly yes
masterauth "123456"

3、从机slave1配置文件

—slave1从机replicaof配置----这个配置内容会当主机挂掉,会被动态注释掉或者清除

daemonize yes
#bind 127.0.0.1 -::1
protected-mode no
port 6380
#工作目录
dir /myredis
pidfile /var/run/redis_6380.pid
logfile "/myredis/6380.log"
requirepass "123456"
dbfilename dump6380.rdb
# 开启 aof  (可选操作)
appendonly no
---slave1从机配置----这个配置内容会当主机挂掉,这个replicaof会被动态注释掉或者清除 
replicaof 192.168.154.128 6379     #拜主机码头
masterauth "123456"     //登录主机密码校验

4、从机slave2配置文件

daemonize yes
#bind 127.0.0.1 -::1
protected-mode no
port 6381
#工作目录
dir /myredis
pidfile /var/run/redis_6381.pid
# 日志目录
logfile "/myredis/6381.log"
requirepass "123456"
dbfilename dump6381.rdb
appendonly no
---slave2从机配置----
replicaof 192.168.154.128 6379     #拜主机码头
masterauth "123456"     //登录主机密码校验

5、哨兵部署在虚拟机主机上

5、1哨兵1–sentinel26379

bind 0.0.0.0
daemonize yes
protected-mode no
port 26379
# 日志目录
logfile "/myredis/sentinel26379.log"
pidfile /var/run/redis-sentinel26379.pid
dir /myredis
sentinel monitor mymaster 192.168.154.128 6379 2
sentinel auth-pass mymaster 123456

5、2哨兵1–sentinel26380

bind 0.0.0.0
daemonize yes
protected-mode no
port 26380
logfile "/myredis/sentinel26380.log"
pidfile /var/run/redis-sentinel26380.pid
dir "/myredis"
sentinel monitor mymaster 192.168.154.128 6379 2
sentinel auth-pass mymaster 123456

5、3哨兵1–sentinel26381

bind 0.0.0.0
daemonize yes
protected-mode no
port 26381
logfile "/myredis/sentinel26381.log"
pidfile /var/run/redis-sentinel26381.pid
dir "/myredis"
sentinel monitor mymaster 192.168.154.128 6379 2    #这个2是投票数
sentinel auth-pass mymaster 123456

6、启动顺序

6.1先启动主机master 再启动从机1 和从机2

6.2然后在分别启动哨兵1、2、3

7、如何查看当前redis角色

7.1 客户端登录

redis-cli -a 123456 -p 6379

7.2 查看角色

info replication
在这里插入图片描述

7.3从机查看角色 role 是slave

观察slave与主机master连接状况 master_link_status:up 才可以
在这里插入图片描述

7.4查看哨兵 日志

cat sentinel26379.log
在这里插入图片描述

8、当主机master 模拟宕机shutdown

哨兵会从从机slave中选举出主机,
从机变成主机,原来的主机master会被哨兵变成从机,角色

1、主机shutdown

在这里插入图片描述

2、原来的主机重新启动,客户端登录发现角色变为slave

在这里插入图片描述

3、从机slave1变为master

在这里插入图片描述

4、当原来的主机192.168.154.128重新启动后,会跟着slave1喊大哥了,

在这里插入图片描述

5、通过哨兵日志观察这些角色的变化过程

在myredis目录下查看已经配置好哨兵日志 输入命令 cat sentinel26379.log
在这里插入图片描述

6、当主机master宕机,哨兵推举主机的过程

在这里插入图片描述

9、观察 redis.conf配置文件的尾部内容(哨兵追加的内容)

1、vim redis6380.conf

:

2、观察原来的主机master角色变为slave后被哨兵追加的内容

1、vim redis6379.conf
2、观察 replicationof 192.168.154.129 6380 现在跟随原来的slave1了
在这里插入图片描述

3、监控和选举并更换主机监控

在这里插入图片描述

变化

在这里插入图片描述

10 当slave变为主机后,然后再宕机,然后又选举出新的master

在这里插入图片描述
11 查看哨兵日志 在这里插入图片描述

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

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

相关文章

蓝桥杯刷题冲刺 | 倒计时1天

作者:指针不指南吗 专栏:蓝桥杯倒计时冲刺 🐾蓝桥杯加油,大家一定可以🐾 文章目录我是菜菜,最近容易我犯的错误总结 一些tips 各位蓝桥杯加油加油 当输入输出数据不超过 1e6 时,scanf printf 和…

【Vue】初识Vue(一)

🚗Vue学习扬帆起航~ 🚩本文已收录至专栏:Vue框架 👍由于Vue2与Vue3存在许多相似之处,先开始Vue2学习再进阶到Vue3 我们知道技术的兴起与流行一般都是为了帮助我们解决一类问题使得我们开发体验更加舒适,那么…

C++之多态

文章目录前言一、多态的概念二、多态的定义及实现1.多态的构成条件2.虚函数3.虚函数的重写(覆盖)4.虚函数重写的两个例外4.C11中的override和final关键字三、重载、重定义(隐藏)、重写(覆盖)的区分四、抽象…

【美赛】2023年ICM问题Z:奥运会的未来(思路、代码)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

【面试】MySQL面试题

文章目录数据库基础知识为什么要使用数据库什么是SQL?什么是MySQL?MySql, Oracle,Sql Service的区别数据库三大范式是什么mysql有关权限的表都有哪几个MySQL的binlog有有几种录入格式?分别有什么区别?数据库经常使用的函数数据类…

C++设置动态库的版本号(软链接)

1,动态库版本命名规则 假设有一个动态库:libfooSdk.so.1.1.0,其对应的三个名称如下。 realname:libfooSdk.so.1.1.0 soname:libfooSdk.so.1 linkname:libfooSdk.solinux的动态库的命名格式是libfooSdk.so.x.y.z 版本…

大数据概述及其软件生态

一、大数据的诞生 (1)当全球互联网逐步建成(2000年左右),各大企业或政府单位拥有了海量的数据亟待处理。 (2) 基于这个前提逐步诞生了以分布式的形式(即多台服务器集群)…

PCB生产工艺流程三:生产PCB的内层线路有哪7步

PCB生产工艺流程三:生产PCB的内层线路有哪7步 在我们的PCB生产工艺流程的第一步就是内层线路,那么它的流程又有哪些步骤呢?接下来我们就以内层线路的流程为主题,进行详细的分析。 由半固化片和铜箔压合而成,用于…

Vue|计算属性

1. 计算属性1.1 差值语法1.2 methods1.3 计算属性1. 计算属性 1.1 差值语法 开始前分别在项目目录创建文件夹及页面如下 需求1:在两个文本框中分别输入姓和名的同时需要在下方将数据进行拼接组装,效果如下图 如果用传统的方式来实现的话,需要…

投屏软件:ApowerMirror Crack

一个软件,两个系统 ApowerMirror是一个跨平台的屏幕镜像应用程序,可用于iOS和Android设备,与Windows和Mac兼容。对于运行支持 Chromecast 的 Android 5.0 或更高版本的手机,用户可以使用此程序镜像屏幕。而对于支持AirPlay的iOS设…

bfs与dfs详解(经典例题 + 模板c-代码)

文章首发于:My Blog 欢迎大佬们前来逛逛 文章目录模板解析dfsbfs1562. 微博转发3502. 不同路径数165. 小猫爬山模板解析 DFS(深度优先搜索)和BFS(广度优先搜索)是图论中两个重要的算法。 dfs 其中DFS是一种用于遍历…

spring源码之扫描前设置

扫描前设置 &#x1f6f9;源码源码说明总结启动一个springboot项目源码 org.springframework.context.annotation.ComponentScanAnnotationParser#parse public Set<BeanDefinitionHolder> parse(AnnotationAttributes componentScan, String declaringClass) {// 创建C…

清明-微信小程序

# 云开发接入 初始化云开发 环境保密

深度学习部署(十三): CUDA RunTime API thread_layout线程布局

1. 知识点 在.vscode/settings.json中配置"*.cu": "cuda-cpp"可以实现对cuda的语法解析 layout是设置核函数执行的线程数&#xff0c;要明白最大值、block最大线程数、warpsize取值 maxGridSize对应gridDim的取值最大值maxThreadsDim对应blockDim的取值最…

酷炫的青蛇探针serverMmon

本文软件由网友 114514 推荐&#xff1b; 什么是 serverMmon &#xff1f; serverMmon (青蛇探针)是 nodeJs 开发的一个酷炫高逼格的云探针、云监控、服务器云监控、多服务器探针。 主要功能介绍&#xff1a; 全球服务器分布世界地图服务器&#xff08;控制端&#xff09; ping…

简单3招教你设置电脑时间

案例&#xff1a;电脑时间怎么设置&#xff1f; 【我使用电脑时&#xff0c;电脑显示的时间一直不对&#xff0c;这导致我非常不方便&#xff0c;想问下大家平常使用电脑时有什么设置电脑时间比较简单的方法吗&#xff1f;】 电脑的时间设置很重要&#xff0c;不仅可以保证电…

Java单例模式、阻塞队列、定时器、线程池

目录1. 单例模式1.1 饿汉模式实现单例1.2 懒汉模式实现单例1.2.1 加锁实现懒汉模式线程安全1.2.2 volatile实现懒汉模式线程安全1.3 饿汉模式和懒汉模式小结&#xff08;面试题&#xff09;2. 阻塞队列2.1 单线程下阻塞队列2.2 多线程下阻塞队列——生产者消费者模型2.3 模拟写…

【蓝桥集训18】二分图(2 / 2)

二分图定义&#xff1a;将所有点分成两个集合&#xff0c;使得所有边只出现在集合之间&#xff0c;就是二分图 目录 860. 染色法判定二分图 1、dfs 2、bfs 861. 二分图的最大匹配 - 匈牙利算法ntr算法 860. 染色法判定二分图 活动 - AcWing 1、dfs 思路&#xff1a; 对每…

白农:Imagination将继续致力于推进车规半导体IP技术创新和应用

4月2日Imagination中国董事长白农在中国电动汽车百人论坛上发表演讲&#xff0c;探讨了车规半导体核心IP技术如何推动汽车智能化发展&#xff0c;并接受了媒体采访。本次论坛上&#xff0c;他强调了IP技术在汽车产业链中日益重要的地位和供应商的位置前移。类比手机行业的发展&…

树、森林、二叉树:相互之间的转换

你好&#xff0c;我是王健伟。 前面我们讲过了各种二叉树&#xff0c;这方面的知识已经够多的了&#xff0c;本节就来讲一讲更通用的概念&#xff1a;树、森林以及与二叉树之间的转换问题。 树的存储结构 前面我们学习了树形结构的基本概念&#xff0c;在满足这个概念的前提…