【速成Redis】04 Redis 概念扫盲:事务、持久化、主从复制、哨兵模式

前言:

前三篇如下:

【速成Redis】01 Redis简介及windows上如何安装redis-CSDN博客

【速成Redis】02 Redis 五大基本数据类型常用命令-CSDN博客

【速成Redis】03 Redis 五大高级数据结构介绍及其常用命令 | 消息队列、地理空间、HyperLogLog、BitMap、BitField-CSDN博客

该篇04是速成系列的完结篇,主要对redis一些重要概念进行扫盲性认知,如事务、持久化、主从复制、哨兵模式。 道阻且长,学完这4篇只能称得上是刚入门redis。剩下还有很多路要走。


目录

一、redis 事务

1.认知:不是传统的事务

2.redis可以保证以下3点

3.实操

 二、持久化

1.RDB

- 可以通过使用配置文件中的save参数来配置:

- 通过手工save命令

- 快照文件缺点:

2.AOF

- 原理:

- 开启AOF的方式:

三、主从复制

四、哨兵模式 


一、redis 事务

1.认知:不是传统的事务

redis的事务和我们之前学习的关系型数据库的事务是不太一样。

在关系型数据库中,事务是一个原子操作,要么全部执行成功,要么全部执行失败。

而在redis中,事务并不能保证所有命令都会执行成功。

redis所支持的支持事务,也就是可以在一次请求中执行多个命令,reids中的事务主要通过MULTI和EXEC实现的。

MULTI命令用来开启一个事务。事务开启后,所有命令会被放入一个队列中,最后通过一个EXEC命令来执行事务中的所有命令。


2.redis可以保证以下3点

1.在发送EXEC命令之前,所有命令都会被放入到一个队列中缓存起来,不会立即执行

2.在收到EXEC命令之后,事务开始执行,事务中任何一个命令执行失败,其他命令依然会回执行。

3.在事务执行过程中,其他客户端提交的命令请求,并不会被插入到事务的执行命令序列中。


3.实操

1.MUTLI开启事务、EXEC提交事务

2.验证事务的特性:

先创建三个新的键:k3、k4、k5

开启事务并且,让其自增,很显然k4的value无法解析为数字,无法自增

结束事务,开始执行命令:

可以看到第二个命令执行失败,别的键已经自增,k4没有变化


 二、持久化

持久化是redis一个非常重要的功能,因为redis是基于内存的数据库,如果没有持久化的话,一旦服务器重启或者断电,那么之前所有的数据都会丢失。


redis持久化主要有两种方式:


1.RDB

是指在指定时间间隔内,将内存中的数据快照写入磁盘,它是某一个时间点上数据的完整副本。

- 可以通过使用配置文件中的save参数来配置:

如图,找到redis.windows.conf配置文件

把sava命令修改

save x y:在x秒时候至少y个键被修改进行一次快照

(根据自己电脑的配置和使用情况修改)

带着新配置文件启动redis服务

在客户端可以检查配置


- 通过手工save命令

除了用配置文件触发快照之外,还可以使用save命令来手工触发快照。

依旧是同一个配置文件,这里是快照储存路径。

执行完修改之后,手工save。

在快照保存处可以看到rdb文件了。


- 快照文件缺点:

     如果服务机器在最后一次快照之后宕机了,那么最后一次快照之后的修改内容都会丢失掉。所以RDB更适合用来做备份, 比如可以每天凌晨时,通过crontab来执行一次save 命令,然后将快照文件备份到其他地方,保证数据安全。

       在生产环境中,我们为redis开辟的内存区域都比较大,那么内存中的数据同步到硬盘这个过程,就会持续比较长的时间,这段时间redis处于一个阻塞状态,显然是不行的,这段时间内redis都是处于一个阻塞状态,不能接受任何请求。

       于是redis提供了一个bgsave的命令,这个命令会单独创建一个子进程,来负责内存数据写入硬盘。这时候主进程就可以接受请求了,但这个过程中还是会有一定的性能损耗。因为fork一个子进程是需要时间的,这段时间redis还是不能处理任何请求,无法做到秒级快照。

2.AOF

- 原理:

       为了解决快照文件的这个问题,redis提供了另一种文件持久化方式:AOF(字面意思是追加文件),它的原理是在执行写命令时,不仅会将命令写入到内存中,也会讲命令写到一个文件中,这个文件就是AOF文件。它会以日志形式记录整个写操作,当redis重启时,它就会重新通过AOF文件中的命令,来在内存中重建整个数据库内容。

- 开启AOF的方式:

如图,依旧是那个配置文件,把appendonly后的no改为yes 


三、主从复制

主从复制是指将一台redis服务器节点复制到另一台redis服务器。

也叫主节点、从节点:

一个主节点可以有多个从节点,而一个从节点只可以有一个主节点。

核心作用:主节点的变化能自动同步到从节点上。

数据复制是单向的,只能由主节点到从节点。一般来说,主节点负责写操作,从节点负责读操作。主节点会将自己的数据变化,通过异步的方式发送给从节点,从节点接收到主节点的数据之后,更新自己的数据,这样就达到了数据一致的目的。 


实际动手配置主从复制:主节点不需要修改任何配置,要修改的是从节点的配置。

命令配置方式有两种:一种是通过命令行执行命令。

slaveof方式指定主节点的ip和端口,这种方式不常用,了解即可,

 另一种是通过配置文件(常用),实操过多这里不着重介绍。该篇主要扫盲,了解什么是主从复制。


四、哨兵模式

导入:

我们可以通过主从复制,为一个主节点,配置两个从节点,形成一主两从的redis集群,实现了一定程度上的高可用。相比单节点的redis来说有了很大的提升。

但是这个集群还是有一定问题的,主节点宕机了,我们还是需要手工去把另一台从节点提升为主节点,还是要人工干预,不是真正的高可用。

有什么方法可以实现自动的故障转移呢?这就是redis哨兵模式!


哨兵会以一个独立的进程,运行在redis集群中,用来监控redis的各个节点是否运行正常,主要用来执行下面几个功能:

1.监控:通过不断地发送通知,检查redis节点是否正常

2.通知:如果发现某个节点出问题了,哨兵就会通过发布订阅模式,来通知其他节点

3.自动故障转移:当主节点不能正常工作时,哨兵就会开启一个自动故障转移的操作,它会将一个从节点升级为一个新的主节点。然后再将其他的从节点指向新的主节点。

ps:哨兵本身也是一个进程,它自己也会有单节点故障的问题.

所以一般在实际的生产环境,会使用三个哨兵节点保证高可用,这三个哨兵节点会通过选举方式,选出领导者,然后由领导者来监控其他节点。如果领导者挂了,那么其他哨兵节点会重新选举出一个领导者,这样就可以保证哨兵节点的高可用了。

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

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

相关文章

自然语言处理-基于注意力机制的文本匹配

背景: 任务三:基于注意力机制的文本匹配 输入两个句子判断,判断它们之间的关系。参考ESIM(可以只用LSTM,忽略Tree-LSTM),用双向的注意力机制实现。 参考 《神经网络与深度学习》 第7章 Reaso…

rar文件怎么打开?这几款软件压缩和查看很方便!

在这个数字化信息爆炸的时代,我们每天都会接触到各种各样的文件,其中RAR格式文件以其高压缩率和良好的文件保护特性,成为了许多人分享和存储大文件的首选。然而,面对这样一个看似“神秘”的文件格式,不少朋友可能会感到…

如何基于Flink CDC与OceanBase构建实时数仓,实现简化链路,高效排查

本文作者:阿里云Flink SQL负责人,伍翀,Apache Flink PMC Member & Committer 众多数据领域的专业人士都很熟悉Apache Flink,它作为流式计算引擎,流批一体,其核心在于其强大的分布式流数据处理能力&…

简单多状态dp第一弹 leetcode -面试题17.16.按摩师 -213.打家劫舍II

a​​​​​​​面试题 17.16. 按摩师 按摩师 题目: 分析: 使用动态规划解决 状态表示: dp[i] 表示:选择到 i 位置时,此时的最长预约时长。 但是我们这个题在 i 位置的时候,会面临 选择 或者 不选择 两种抉择,所依赖的状态需要…

大数据Flink(一百二十四):案例实践——淘宝母婴数据加速查询

文章目录 案例实践——淘宝母婴数据加速查询 一、​​​​​​​创建数据库表并导入数据 二、​​​​​​​​​​​​​​创建session集群 三、​​​​​​​​​​​​​​源表查询 四、​​​​​​​​​​​​​​指标计算 案例实践——淘宝母婴数据加速查询 随着…

GS-SLAM论文阅读笔记--GLC-SLAM

前言 最近GS-SLAM回环检测的工作已经逐步发展了,看一下这篇新文章。 文章目录 前言1.背景介绍2.关键内容2.1 tracking2.2 local mapping2.3 Loop Closing2.4总体流程 3.文章贡献 1.背景介绍 现有的基于3dgs的SLAM方法往往存在累积的跟踪误差和地图漂移&#xff0c…

【后端开发】JavaEE初阶—线程安全问题与加锁原理(超详解)

前言: 🌈上期博客:【后端开发】JavaEE初阶—Theard类及常见方法—线程的操作(超详解)-CSDN博客 🌈感兴趣的小伙伴看一看小编主页:GGBondlctrl-CSDN博客 🌈小编会在后端开发的学习中不…

Java反射机制入门:解锁运行时类信息的秘密

反射技术: 其实就是对类进行解剖的技术 类中有什么?构造方法 成员方法成员变量 结论:反射技术就是把一个类进行了解剖,然后获取到 构造方法、成员变量、成员方法 反射技术的应用案例: idea框架技术:Spr…

通过document获取节点元素

1.层级节点 <ul><li id"li1">1</li><li>2</li><li id"li3">3</li><li>4</li><li>5</li></ul><script>//获取id名为li1的元素赋值给li1let li1document.getElementById(li…

爬虫----webpack

目录 一. 什么是webpack 出现的原因&#xff1a;同名函数 概念: 特征&#xff1a;大量缩进 webpack的格式 简单的webpack格式&#xff1a; 详细的webpack格式&#xff1a; 几个参数的运用 1. webpack数组形式 2. webpack对象格式 3.多个js文件打包 打印要扣的代码 …

【chromedriver编译-绕过selenium机器人检测】

有小伙伴说使用selenium没能绕过机器人检测&#xff0c;盘他。 selenium机器人检测有2种&#xff0c;一是cdp检测&#xff0c;二是webdriver特征检测。cdp检测前面的博客已写过&#xff0c;这里就提下webdriver特征检测。一、selenium简介 Selenium 是一个强大的工具&#xff…

单片机带隙电压基准电路

单片机带隙电压基准电路 一、带隙电压基准电路概述 带隙电压基准电路在单片机中占据着至关重要的地位。它能够为各种模拟集成电路提供稳定的参考电压&#xff0c;确保电路的正常运行。例如&#xff0c;在高精度的比较器中&#xff0c;带隙电压基准电路可以提供一个精确的参考…

linux 的 sed 命令的 使用学习

&#xff08;1&#xff09; sed 概述&#xff1a; &#xff08;2&#xff09; 首先谢谢 b 站这位老师&#xff0c;这位专家的完美讲解 讲解继续&#xff1a; &#xff08;3&#xff09; 关于 sed 里的模式&#xff1a; &#xff08;4&#xff09; sed 支持的常用的对文本编辑的…

Matlab|考虑柔性负荷的综合能源系统低碳经济优化调度

目录 1 主要内容 2 部分代码 3 程序结果 4 下载链接 1 主要内容 程序主要实现的是考虑柔性负荷的综合能源系统低碳经济优化调度&#xff0c;模型参考《考虑柔性负荷的综合能源系统低碳经济优化调度》&#xff0c;求解方法采用的是混合整数规划算法&#xff0c;通过matlabc…

【设计模式】UML类图

目录 前言 一、类图概述 二、类图的作用 三、类图表示法 四、类之间关系的表示方法 1. 关联关系 1.1 单向关联 1.2 双向关联 1.3 自关联 2. 聚合关系 3. 组合关系 4. 依赖关系 5. 继承关系 6. 实现关系 总结 前言 统一建模语言&#xff08; Unified Modeling La…

如何快速上手一个Github的开源项目

程序研发领域正是有一些热衷开源的小伙伴&#xff0c;技能迭代才能如此的迅速&#xff0c;因此&#xff0c;快速上手一个GitHub上的开源项目&#xff0c;基本上已经变成很个程序员小伙伴必须掌握的技能&#xff0c;因为终究你会应用到其中的一个或多个项目&#xff0c;帮助自己…

【资源一号04A卫星(中巴地球资源卫星04A星)】

资源一号04A卫星&#xff08;中巴地球资源卫星04A星&#xff09; 资源一号04A卫星&#xff0c;全称为中巴地球资源卫星04A星&#xff08;CBERS-04A&#xff09;&#xff0c;是中国与巴西两国合作研制的第六颗地球资源卫星。以下是对该卫星的详细介绍&#xff1a; 一、基本信…

打造灵活DateTimePicker日期时间选择器组件:轻松实现时间的独立清除功能

element ui中日期和时间选择器&#xff08;DateTimePicker&#xff09;是一个常见且重要的组件。它允许用户轻松地选择日期和时间&#xff0c;极大地提升了用户体验。然而&#xff0c;在某些场景下&#xff0c;用户可能需要更细粒度的控制&#xff0c;例如单独清除已选择的时间…

【资源一号02C卫星】

资源一号02C卫星 资源一号02C卫星是中国航天科技集团公司所属中国空间技术研究院负责研制生产的一颗重要遥感卫星。以下是关于该卫星的详细介绍&#xff1a; 一、基本信息 发射时间&#xff1a;2011年12月22日11时26分发射地点&#xff1a;中国太原卫星发射中心运载火箭&am…

基于区块链的相亲交易系统源码解析

随着区块链技术的成熟与发展&#xff0c;其去中心化、不可篡改的特性逐渐被应用于各行各业。特别是在婚恋市场中&#xff0c;区块链技术的应用为相亲平台带来了新的可能性 。本文将探讨如何利用区块链技术构建一个透明、高效的相亲交易系统&#xff0c;并提供部分源码示例。 区…