redis基础—主从同步原理与配置以及哨兵模式

一:redis的主从同步原理

1.slave节点发送同步请求到master节点

2.slave节点通过master节点的认证开始进行同步

3.认证结束后,master节点开启bgsave进程

4.master节点会开启bgsave进程发送内存快照rbd到slave节点,在此过程中是异步操作,也就是说master节点仍然可以进行写入动作
5.slave节点收到rdb后首先清空自己的所有数据(flushall)
6.slave节点加载内存快照rdb并进行数据恢复
7.在master和slave同步过程中masteri还会开启新的bgsave进程把没有同步的数据进行缓存
然后诵讨自有的replactionfeedslave函数把未诵讨内存快照发动到slave的教据一条一条写入到slave中 

二:redis的主从同步部署

准备三台虚拟机

172.25.254.10(master)

172.25.254.20(slave)

172.25.254.30(slave)

172.25.254.10(master)

配置主从同步,修改master节点的配置文件,关闭保活模式

[root@node1 ~]# vim /etc/redis/6379.conf

重新启动redis

[root@node1 ~]# /etc/init.d/redis_6379 restart

172.25.254.20(slave)

[root@node2 ~]# vim /etc/redis/6379.conf

将安全功能关闭

重新启动redis

[root@node2 ~]# /etc/init.d/redis_6379 restart

172.25.254.30(slave)

[root@node3 ~]# vim /etc/redis/6379.conf

将安全功能关闭

重新启动redis

[root@node3 ~]# /etc/init.d/redis_6379 restart

检测

172.25.254.10上启动redis主机查看使用info查询

[root@node1 ~]# redis-cli

127.0.0.1:6379> info replication

redis主从同步成功

三:redis的哨兵

什么是哨兵模式?

        Sentinel进程是用于监控redis集群中Master主服务器工作状态,在Master主服务器发生故障的时候,可以实现Master和Slave服务器的切换,保证系统的高可用。

        每个哨兵(Sentinel)进程会向其它哨兵(Sentinel)、Master,Slave定时发送消息,以确认对方是否"活"着,如果发现对方在指定配置时间(此项可配置)内未得到回应,则暂时认为对方已离线,也就是所谓的”"主观认为宕机”(主观:是每个成员都具有的独自的而且可能相同也可能不同的意识),英文名称:Subjective Down,简称SDOWN
        有主观宕机,对应的有客观宕机。当"哨兵群"中的多数Sentineli进程在对Master:主服务器做出SDOWN的判断,并且通过SENTINEL is-master-down-by-addr命令互相交流之后,得出的Master Server下线判断,这种方式就是“客观宕机'"(客观:是不依赖于某种意识而已经实际存在的一切事物),英文名称是:Objectively Down,简称ODOWN
        通过一定的vote算法,从剩下的slave从服务器节点中,选一台提升为Master服务器节点,然后自动修改相关配置,并开启故障转移(failover)
        Sentinel机制可以解决master和slave角色的自动切换问题,但单个Master的性能瓶颈问题无法解决,类似于MySQL中的MHA功能

sentinel中的三个定时任务

1.每10秒每个sentinel对master和slave执行info
发现slave节点
确认主从关系
2.每2秒每个sentineli通过master节点的channel交换信息(pub/sub)
通过sentine:hello频道交互
交互对节点的“看法“和自身信息
3.每1秒每个sentinel对其他sentinel和redis执行ping

哨兵实验部署

注意:在所有阶段中关闭protected-mode no

在172.25.254.10主机上

编辑sentinel.conf配置文件信息

[root@node1 redis-7.4.0]# cp sentinel.conf /etc/redis/

[root@node1 ~]# vim /etc/redis/sentinel.conf 

指定监控对象为master的IP地址

将配置文件信息传输到172.25.254.20和172.25.254.30主机上

[root@node1 ~]# scp /etc/redis/sentinel.conf root@172.25.254.20:/etc/redis/sentinel.conf
[root@node1 ~]# scp /etc/redis/sentinel.conf root@172.25.254.30:/etc/redis/sentinel.conf

由于哨兵模式会更改配置文件的内容,对底下文件进行备份(10,20和30主机都进行)

[root@node1 ~]# cd /etc/redis/
[root@node1 redis]# ls
[root@node1 redis]# cp sentinel.conf sentinel.conf.bak

启动哨兵模式

[root@node1 redis]# redis-sentinel /etc/redis/sentinel.conf

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

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

相关文章

【原创】java+springboot+mysql在线文件管理系统设计与实现

个人主页:程序猿小小杨 个人简介:从事开发多年,Java、Php、Python、前端开发均有涉猎 博客内容:Java项目实战、项目演示、技术分享 文末有作者名片,希望和大家一起共同进步,你只管努力,剩下的交…

Docker学习笔记(2)- Docker的安装

1. Docker的基本组成 镜像(image):Docker镜像就像是一个模板,可以通过这个模板来创建容器服务。通过一个镜像可以创建多个容器。最终服务运行或者项目运行就是在容器中。容器(container):Docker…

Spring6梳理14——依赖注入之P命名空间

以上笔记来源: 尚硅谷Spring零基础入门到进阶,一套搞定spring6全套视频教程(源码级讲解)https://www.bilibili.com/video/BV1kR4y1b7Qc 目录 ①搭建模块 ②引入配置文件 ③创建bean-dip.xml文件 ④创建课程类文件 ⑤创建学生…

基于SpringBoot+Vue+uniapp微信小程序的校园反诈骗微信小程序的详细设计和实现(源码+lw+部署文档+讲解等)

项目运行截图 技术框架 后端采用SpringBoot框架 Spring Boot 是一个用于快速开发基于 Spring 框架的应用程序的开源框架。它采用约定大于配置的理念,提供了一套默认的配置,让开发者可以更专注于业务逻辑而不是配置文件。Spring Boot 通过自动化配置和约…

day-69 使二进制数组全部等于 1 的最少操作次数 II

思路 与3191. 使二进制数组全部等于 1 的最少操作次数 I思路类似,区别在于该题每次将下标i开始一直到数组末尾所有元素反转,所以我们用一个变量可以统计翻转次数 解题过程 从左向右遍历数组的过程中,有两种情况需要进行翻转:1.当…

【Linux】内存文件系统的I/O、重定向

文章目录 1. 系统中的文件2. 回顾C中的文件接口3. 文件类的系统调用3.1 open3.2 文件描述符 4. IO的基本过程5.重定向5.1 引入重定向5.2 系统中的重定向接口 6. 缓冲区问题7. 简单版shell的实现 1. 系统中的文件 在学习完Linux权限后,我们清楚的知道:文…

【JVM】内存模型

文章目录 内存模型的基本概念案例 程序计数器栈Java虚拟机栈局部变量表栈帧中局部变量表的实际状态栈帧中存放的数据有哪些 操作数栈帧数据 本地方法栈 堆堆空间是如何进行管理的? 方法区静态变量存储 直接内存直接内存的作用 内存模型的基本概念 在前面的学习中,我们知道了字…

论文笔记:Pre-training to Match for Unified Low-shot Relation Extraction

论文来源:ACL 2022 论文地址:https://aclanthology.org/2022.acl-long.397.pdf 论文代码:https://github.com/fc-liu/MCMN (笔记不易,请勿恶意转载抄袭!!!) 目录 A…

从头预训练一只迷你 LLaMA 3_llama3 预训练预处理

我将向你展示如何使用 LLama 3.1(一个本地运行的模型)来执行GraphRAG操作,总共就50号代码。。。 首先,什么是GraphRAG?GraphRAG是一种通过考虑实体和文档之间的关系来执行检索增强生成的方式,关键概念是节…

Elasticsearch学习笔记(七)安装并配置Metricbeat

Metricbeat 是一个轻量级的开源数据采集器,专门用于收集操作系统和服务的指标(metrics)。它是 Elastic Stack(即 ELK Stack)的一部分,通常用于监控系统性能、收集应用程序和服务器的性能指标,并…

【大模型】AI视频课程制作工具开发

1. 需求信息 1.1 需求背景 讲师们在制作视频的过程中,发现录制课程比较麻烦,要保证环境安静,保证录制过程不出错,很容易反复重复录制,为了解决重复录制的工作量,想通过 ai 课程制作工具,来解决…

字节跳动青训营——入营考核解答(持续更新中~~~)

考核内容: 在指定的题库中自主选择不少于 15 道算法题并完成解题,其中题目难度分配如下: 简单题不少于 10 道中等题不少于 4 道困难题不少于 1 道 解答代码 5.简单四则运算 (中) 代码实现: import ja…

TON(六)——fift算法,注释的改写

系列文章目录 TON(五) TON(四) TON(三) TON(二) TON(一) 前言 fift是一门十分强大的栈编程语言,,在TON中它是由c编译而成的语言…

WordPress官方发布“新”插件“SCF”(安全自定义字段)

安全自定义字段 (SCF) 为您提供了处理数据所需的所有工具,从而将 WordPress 网站转变为成熟的内容管理系统。 使用 SCF 插件可以完全控制您的 WordPress 编辑屏幕、自定义字段数据等。 按需添加字段—SCF字段生成器允许您快速轻松地将字段添加到 WP 编辑屏幕&…

第一个servlet程序

文章目录 在原有工程上建立模块前端配置前后端映射关系添加外部依赖库后端代码启动配置 在原有工程上建立模块 添加web框架 前端 应用结构 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>第一…

什么是SYN flood,如何处理

在数字化时代&#xff0c;随着互联网的普及和技术的飞速发展&#xff0c;网络安全问题变得日益严峻。Flood攻击&#xff0c;作为一种典型的网络攻击手段&#xff0c;对个人和企业的信息安全构成了重大威胁。通过深入了解Flood攻击的概念、特点、影响及解决方案&#xff0c;我们…

SpringSecurity源码分析以及如何解决前后端分离出现的跨域问题

解决Security前后端分离出现的跨域问题 一. Security源码分析 首先在看源码之前我们先来看这张图 , 这张图展示了Security执行的全部流程 从上图可知Security执行的入口是UsernamePasswordAuthenticationFilter这个抽象类 , 那我们就先从该类进行分析 1. UsernamePasswordAu…

【智慧大屏】BI智慧大屏,大屏可视化解决方案(word原件)

1.系统概述 1.1.需求分析 1.2.重难点分析 1.3.重难点解决措施 2.系统架构设计 2.1.系统架构图 2.2.关键技术 2.3.接口及要求 3.系统功能设计 3.1.功能清单列表 3.2.数据源管理 3.3.数据集管理 3.4.视图管理 3.5.仪表盘管理 3.6.移动端设计 3.1.系统权限设计 3.…

Scala入门基础(12)抽象类

抽象类&#xff0c;制定标准&#xff0c;不要求去具体实现 包含了抽象方法的类就是抽象类。抽象方法只是有方法名&#xff0c;没有具体方法体的方法 定义抽象类要用abstract&#xff08;抽象&#xff09;关键字 用智能驾驶技术举例&#xff1a;演示&#xff09…

深入理解WPF中的命令机制

Windows Presentation Foundation&#xff08;WPF&#xff09;是微软推出的一种用于构建桌面客户端应用程序的技术。它被认为是现代Windows应用程序的基础&#xff0c;具有强大的图形和媒体处理能力。在WPF中&#xff0c;“命令”是一个重要的概念&#xff0c;它为应用程序开发…