3/11Redis学习下

6.他们之间有什么优缺点

RDB

优点:1.使用二进制压缩包文件,内容更小。2.容量小,启动速度快

缺点:实时性较差,会出现数据丢失的问题,版本不兼容,老的redis可能不支持rdb文件

AOF:

优点:实时性好,可以同appendSYnc,设置always,每一次操作都会记录到文件中。

缺点:容量相较于rdb比较大,启动速度比较慢,恢复速度慢

7.RBD和AOF选择哪个

目前主流是AOF,如果数据具有同步性实时性高,则推荐aof,如果实例小,可以接受一段时间的数据丢失则使用rdb。如果只追求运行时数据存在,则无需配置。

8. redis的数据恢复

1.是否配置了aof,然后配置,优先选择aof

2.当aof不存在时,配置rdb

3.redis加载aof/rdb,redis启动成功

4.启动失败,redis进行失败日志输出。

9.Redis 4.0 的混合持久化了解吗?

重启 Redis 时,我们很少使用 RDB 来恢复内存状态,因为会丢失大量数据。我们通常使用 AOF 日志重放,但是重放 AOF 日志性能相对 RDB 来说要慢很多,这样在 Redis 实例很大的情况下,启动需要花费很长的时间。

Redis 4.0 为了解决这个问题,带来了一个新的持久化选项——混合持久化。将 rdb 文件的内容和增量的 AOF 日志文件存在一起。

这里的 AOF 日志不再是全量的日志,而是 自持久化开始到持久化结束 的这段时间发生的增量 AOF 日志,通常这部分 AOF 日志很小.

于是在 Redis 重启的时候,可以先加载 rdb 的内容,然后再重放增量 AOF 日志就可以完全替代之前的 AOF 全量文件重放,重启效率因此大幅得到提升。

10.主从复制的概念

将一台redis的数据,拷贝到其他redis节点上,前者是主节点,后者则是从节点,且数据是单向的,即支持主节点向从节点发送消息,支持从节点给从节点发送信息。

11.主从复制的主要作用

(1)数据冗余:实现数据的热备份,是除了数据持久化之外的一种数据冗余方式。

(2)故障恢复:当主节点出现故障的时候,从节点可以提高服务,实现数据的快速的恢复

(3)负载均衡,在主从复制的基础上,实现读写分离,主节点负责写操作,从节点负责读操作,适用于读多写少的情况,提高redis的并发能力。

(4)高可用 ,主从复制是redis的哨兵和集群实现的基础,是redis高可用的基础。

12、redis有哪些结构

(1)一对一的数据结构,从节点负责在主节点多宕机的时候,提高故障转移支持‘

(2)一对多,也叫星型,一个主节点对应多个从节点,利用从节点实现读写分离,提高redisde1并发能力

(3)多对多也叫树形。使得从节点不但可以复制拷贝主节点的数据,还支持从从复制,将数据拷贝到字节的下一个从节点里面。有助于负载均衡操作。

13.Redis的主从复制的原理

(1)先获取主节点的配置信息,如果port和id

(2)从节点与主节点进行socket连接

(3)从节点发送ping请求,主要检测:网络可用性和网络套接字是否可以

(4)如果主节点存在验证信息,则进行权限认证

(5)主节点会把数据拷贝给从节点

(6)然后主节点会持续写命令发给从节点,保证数据一致性。

14.Redis数据同步

redis分为全部复制和部分复制,当redis进行全部同步时,则是将redis的全部数据都同步给从节点,导致时间长,对网络产生了很大的开销。所以后期引入了部分复制。

(1)全部复制的流程

  • 发送psync指令进行数据同步,由于是第一次数据拷贝,则从节点没有复制偏移量和主节点的id,则发送psync -1

  • 主节点接收到psync-1,则知道系统要做的是全量复制,触发、、回复,fullresync响应。

  • 从节点接收到了主节点的响应数据,然后保存运行id和偏移量offset

  • 主节点执行bgsave保保存rdb到本地

  • 主节点将rdb发送给从节点,然后发送给从节点,从节点接收后,保存本地,然后齿执行rdb文件

  • 从节点接收到rdb快照到接收完成期间,主节点仍然响应用户的请求,这时候,主节点则会将指令暂放缓冲区,等从节点加载完rbd之后,则将缓冲区的数据发送给从节点,

  • 从节点接收到主节点发送的数据后,则会将自身数据清空

  • 然后执行rdb文件

  • 如果加载完毕之后,用户开启了aof持久化操作,则会立即作bgrewriteaod操作,保证全量复制后的aof问年间立即可用

(2)部分复制

针对于全量复制的高消费,我们提除了部分复制。当从从节点对主节点进行复制,出现了网络异常等操作,导致信息中断后,从节点会要求主节点从发那些没有接收到的数据,如果主节点的复制缓冲区有这个数据则直接发送。

过程

  • 当网络中断或者是数据丢失后,时间超过repl-timeout时间,主节点则会主动向中断的从节点进行数据恢复

  • 主从连接中断后,但主节点依然响应数据,他会把数据放在复制缓存区,默认最大缓存1mb

  • 当从节点恢复,连接主节点后

  • 从节点上一次数据的id和offset便宜量,因此会把它们当作 psync 参数发送给主节点,要求进行部分复制操作。

  • 主节点接收到了psync后,判断runid是否和自己一致,如果是,则是请求的自己。然后通过偏移量,查找缓冲区,如果存在,则主节点发送+continue响应,积极性部分复制

  • 主节点根据偏移量把复制积压缓冲区里的数据发送给从节点,保证主从复制进入正常状态

15、主从复制的问题

(1)当主节点宕机后,需要手动配置节点充当主节点,需要修改主节点的地址,还要命令其他从节点去复制主节点。需要人工干预

(2)受到写单机操作的限制

(3)受到存储单机操作的限制

16、哨兵的组成和功能

sentinal 分为哨兵节点和数据节点,哨兵节点不进行任何的数据存储,只负责监控数据节点,定期发送请求,判断节点是否运行正常

数据节点则是以前的主节点和从节点。

功能分为:

(1)监控:哨兵会不断向数据节点发送请求,判断数据节点是否正常运行,

(2)自动故障转移,当主节点宕机时,哨兵节点会自动开始故障转移,会从从节点中,选择一个上升为主节点,并且通知其他从节点去复制该节点

(3)客户端初始化的时候,可以通过连接哨兵得到redis主节点的id

(4)哨兵可以通知故障转移结果给客户端

17、哨兵节点的原理

(1)10s会定期向数据节点发送info命令,获取最新的拓扑结构

(2)2s每一个sentinel,会向redis数据节点的sentinel:hello频道上发送该节点sentinel对主节点的判断和而当前sentinel的状态

(3)1sentinel节点向数据节点、从节点,其他sentinel节点发送ping请求看是否可达

18 、哨兵机制

领带者sentinel选拔:每一个在线的sentinel都可以参与选拔,收到命令的sentinel,如果没有同意其他sentinel的选拔,则同意请求,否则拒绝,选票数量》=max(qunorum,(senutinek;)/2+1);然后没有选出来继续下一轮

主从节点的选择:

  • 过滤掉不健康的节点

  • 选择slave-priority(从节点)优先级最高的

  • 选择offert增量最大的,即拷贝数据最多的从节点

  • 选择runid最小的从节点。

Redis集群

  • 数据分区:每一个都是单独的节点,都具有读写的操作,减轻了单个redis的压力,提高了响应熟读,同时集群将数据分散到多个节点,突破了redis单机内存限制,容量增加了

  • 高可用:提高了故障转移技术,类似于哨兵,当其中一节点宕机,依然可用。

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

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

相关文章

移动硬盘无法读取怎么修复?分享三个简单方法

移动硬盘作为现代数据存储的重要工具,一旦出现故障,往往会让我们感到焦虑和困惑。当移动硬盘无法读取时,我们需要冷静分析并采取适当的措施来修复它。本文将为您介绍三种有效的修复方法。 一、检查物理连接与驱动程序 当移动硬盘无法读取时&…

LiveGBS流媒体服务器中海康摄像头GB28181公网语音对讲、语音喊话的配置

LiveGBS海康摄像头国标语音对讲大华摄像头国标语音对讲GB28181语音对讲需要的设备及服务准备 1、背景2、准备2.1、服务端必备条件(注意)2.2、准备语音对讲设备2.2.1、不支持跨网对讲示例2.2.2、 支持跨网对讲示例 3、开启音频开始对讲4、搭建GB28181视频…

动手学深度学习-注意力机制Transformer

注意力机制 1. 注意力提示 1.1. 生物学中的注意力提示 **自主性提示(随意线索):收到认知和意识的控制,有主观意愿的推动。**如下图,所有纸制品都是黑白印刷的,但咖啡杯是红色的。 换句话说,这…

Java模板方法模式源码剖析及使用场景

一、原理与通俗理解 模板方法模式定义了一个算法的骨架,将某些步骤推迟到子类中实现。模板方法定义一个算法的骨架,将一些步骤的实现延迟到子类中完成。这样做的目的是确保算法的结构保持不变,同时又可以为不同的子类提供特定步骤的实现。 比如去餐馆吃饭,餐馆有固定的流程(下…

关于Mac宿主机无法ping通Docker容器的问题

https://www.cnblogs.com/luo-c/p/15830769.html 1.首先 Mac 端通过 brew 安装 docker-connector brew install wenjunxiao/brew/docker-connector 2.手动修改 /usr/local/etc/docker-connector.conf 文件中的路由(也可使用博客中的命令自动配置)&#…

C++switch语句

1.晶晶赴约会 晶晶的朋友贝贝约晶晶下周一起取看展览,但晶晶每周的一,三,五有课必须上课,请帮晶晶判断她能否接受贝贝的邀请,如果能输出YES,如果不能输入NO 输入 一行,贝贝邀请晶晶去看展览的日期,用数字1~7表示从星期一到星期日 输出 一行,若晶晶可以接受贝贝的邀…

【办公类-21-09】三级育婴师 视频转文字docx(等线小五单倍行距),批量改成“宋体小四、1.5倍行距、蓝色字体”

作品展示: 背景需求: 一、视频处理 1、育婴师培训的现场视频 2、下载视频,将视频换成考题名称 二、音频 视频用格式工厂转成MP3音频 3、转文字doc 把音频放入“网易云见外工作台”转换为“文字" 等待5分钟,音频文字会被写…

Redis入门--头歌实验初始redis

一、Redis中的数据结构 任务描述 本关任务:启动 Redis 客户端并创建一些值。 相关知识 为了完成本关任务,你需要掌握:1.Redis简介,2.快速安装Redis与Python,3.Redis数据结构简介。 R…

Python元组(Tuple)深度解析!

目录 1. 什么是元组? 2. 创建元组 3.访问元组 4.元组的运算 5.修改元组不可行 6.元组的应用场景 前面的博客里,我们详细介绍了列表(List)这一种数据类型,现在我们来讲讲与列表相似的一种数据类型,元组…

【Python】【Matplotlib】fig, ax = plt.subplots() 返回的fig和ax是什么?

【Python】【Matplotlib】fig, ax plt.subplots() 返回的fig和ax是什么? 🌈 个人主页:高斯小哥 🔥 高质量专栏:Matplotlib之旅:零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程&a…

求职干货!如何自信地进行自我介绍和面试问答!

面试在求职过程中扮演着至关重要的角色。它不仅是雇主评估候选人能力和适应性的关键环节,也是候选人展示自我、展示技能和经验的绝佳机会。通过面试,雇主可以更直接地了解候选人的沟通能力、解决问题的能力以及团队合作精神,这些都是成功工作…

ChatGPT GPT4科研应用、数据分析与机器学习、论文高效写作、AI绘图技术

原文链接:ChatGPT GPT4科研应用、数据分析与机器学习、论文高效写作、AI绘图技术https://mp.weixin.qq.com/s?__bizMzUzNTczMDMxMg&mid2247596849&idx3&sn111d68286f9752008bca95a5ec575bb3&chksmfa823ad6cdf5b3c0c446eceb5cf29cccc3161d746bdd9f2…

实例成员、静态成员

一、静态成员先于实例成员存在 类被加载到内存时,静态变量分配内存空间,静态方法分配入口地址 只有创建对象之后,实例变量分配内存空间,实例方法分配入口地址 当再创建对象时,实例方法不再分配入口地址,…

【Java从发入门到精通】Java StringBuffer 和 StringBuilder 类

Java StringBuffer 和 StringBuilder 类 当对字符串进行修改的时候,需要使用 StringBuffer 和 StringBuilder 类。 和 String 类不同的是,StringBuffer 和 StringBuilder 类的对象能够被多次的修改,并且不产生新的未使用对象。 在使用 Stri…

蓝桥杯[OJ 3412]-最小化战斗力差距-CPP-贪心

目录 一、问题描述: 二、整体思路: 三、代码: 一、问题描述: 二、整体思路: 首先每个值都有可能为min(b),那么对于每个可能为min(b)的值,要使得max(a)尽可能小,因此枚举所有相差最…

【C/C++ API】C++内存分配和释放函数分析

文章目录 mallocrealloccallocmemalignposix_memalignfree参考 malloc malloc 是 C 标准库中的一个函数,用于动态分配内存。它的函数声明如下: void* malloc(size_t size);malloc 接受一个参数 size,表示要分配的内存块的大小(以…

设置文件描述符:FD_CLOEXEC(MAC OSX/LINUX)

FD_CLOEXEC是文件描述符标志,用于确保在执行exec调用时关闭文件描述符。当一个文件描述符被设置为FD_CLOEXEC标志时,这个文件描述符会在执行exec调用时自动关闭,这样可以防止在新程序中意外地继承和使用这些文件描述符。 这种特性对于在多进程…

高颜值抓包工具Charles,实现Mac和IOS端抓取https请求

Hi,大家好。在进行测试的过程中,不可避免的会有程序报错,为了能更快修复掉Bug,我们作为测试人员需要给开发人员提供更准确的报错信息或者接口地址,这个时候就需要用到我们的抓包工具。 常见的抓包工具有Fiddler、Char…

【NR技术】 3GPP支持无人机服务的关键性能指标

1 性能指标概述 5G系统传输的数据包括安装在无人机上的硬件设备(如摄像头)收集的数据,例如图片、视频和文件。也可以传输一些软件计算或统计数据,例如无人机管理数据。5G系统传输的业务控制数据可基于应用触发,如无人机上设备的开关、旋转、升…

UHF 无线麦克风的技术设计

一、麦克风介绍 UHF 无线麦克风是一种广泛应用于演讲、表演、会议等场合的音频设备。它通过 UHF 无线电波传输音频信号,具有传输距离远、抗干扰能力强等优点。今天跟大家分享下 UHF 无线麦克风方案的技术设计开发,其主要包括发射机和接收机这两大主要模…