当前位置: 首页 > news >正文

【速成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:哨兵本身也是一个进程,它自己也会有单节点故障的问题.

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

相关文章:

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

前言: 前三篇如下: 【速成Redis】01 Redis简介及windows上如何安装redis-CSDN博客 【速成Redis】02 Redis 五大基本数据类型常用命令-CSDN博客 【速成Redis】03 Redis 五大高级数据结构介绍及其常用命令 | 消息队列、地理空间、HyperLogLog、BitMap、…...

SQL Server 2022的数据类型

新书速览|SQL Server 2022从入门到精通:视频教学超值版_sql server 2022 出版社-CSDN博客 《SQL Server 2022从入门到精通(视频教学超值版)(数据库技术丛书)》(王英英)【摘要 书评 试读】- 京东图书 (jd.com) 数据类…...

Linux基础3-基础工具4(git),冯诺依曼计算机体系结构

上篇文章:Linux基础3-基础工具3(make,makefile,gdb详解)-CSDN博客 本章重点: 1. git简易使用 2. 冯诺依曼计算机体系结构介绍 目录 一. git使用 1.1 什么是git? 1.2 git发展史 1.3 git创建仓库 1.4 git命令操作 二. 冯诺依…...

后台数据管理系统 - 项目架构设计-Vue3+axios+Element-plus(0916)

接口文档: https://apifox.com/apidoc/shared-26c67aee-0233-4d23-aab7-08448fdf95ff/api-93850835 接口根路径: http://big-event-vue-api-t.itheima.net 本项目的技术栈 本项目技术栈基于 ES6、vue3、pinia、vue-router 、vite 、axios 和 element-plus http:/…...

MySQL基础篇(黑马程序员2022-01-18)

1 MySQL数据库概述 1.1 MySQL数据库的下载,安装,启动停止 1.2 数据模型 (1)关系型数据库(RDBMS) 概念:建立在关系模型基础上,由多张相互连接的二维表组成的数据库。 特点: A. 使用表存储数据,格式统一,便于维护。…...

nodejs 013:Prect 样式复用(multiple classes)例子

Prect 简单示例 Prect 为使用相同的现代 API 的快速 3kB React 替代方案。代码形式与 React 基本相同。部分语法区别可见 prect-differences-to-react。以下是一个 Prect 简单示例。 Button目录Button.css: .this {display: inline-block;padding: 3px 8px;margi…...

MQ入门(一):同步调用和异步调用--RabbitMQ基础入门

目录 1.初识MQ 1.1.同步调用 1.2.异步调用 1.3.技术选型 2.RabbitMQ 2.1.安装部署 2.2.RabbitMQ基本架构 2.3.收发消息 2.3.1.交换机 2.3.2.队列 2.3.3.绑定关系 2.3.4.发送消息 2.4.数据隔离 2.4.1.用户管理 2.4.2.virtual host 1.初识MQ 微服务一旦拆分&…...

由于安全风险,安全领导者考虑禁止人工智能编码

安全团队与开发团队之间的紧张关系 83% 的安全领导者表示,他们的开发人员目前使用人工智能来生成代码,57% 的人表示这已成为一种常见做法。 然而,72% 的人认为他们别无选择,只能允许开发人员使用人工智能来保持竞争力&#xff0…...

地图相关的系统软件及插件

1 ArcGis ArcGis For Javascript中文网站 首页 | ArcGis中文网 ArcGis For Javascript英文网站 ArcGIS是一款由Esri公司开发的地理信息系统软件,它提供了丰富的地图数据和分析工具,可以帮助用户进行各种空间分析和决策。 2 leaflet leaflet中文网站…...

Elasticsearch如何排序,分页以及高亮查询

目录 一、排序 二、分页查询 三、高亮查询 一、排序 ES中默认使用相关度分数实现排序,可以通过搜索语法定制化排序。 GET /索引/_search { "query": 搜索条件,"sort": [{"字段1":{"order":"asc"} },{ "字…...

Transformer预测 | 基于Transformer心率时间序列预测(tensorflow)

效果一览 基本介绍 Transformer预测 | 基于Transformer心率时间序列预测(tensorflow) 程序设计 import pandas as pd from pandas.plotting import lag_plot from statsmodels.graphics...

科研绘图系列:R语言误差连线图(errobar linechart)

文章目录 介绍加载R包导入数据数据预处理画图系统信息介绍 误差连线图是一种在数据可视化中常用的图表,它通过在数据点处添加线段(误差线)来表示数据的变异性或不确定性。这些误差线可以基于不同的统计度量,如标准差(Standard Deviation)、标准误差(Standard Error)或…...

智能BI项目第五期

本期主要内容 系统问题分析异步化业务流程分析线程池讲解(入门 原理 实战)系统异步化改造开发 1.系统问题分析 当系统面临大量用户请求时,我们后端的 AI 处理能力有限,例如服务器的内存、CPU、网络带宽等资源有限&#xff0c…...

Android-UI设计

控件 控件是用户与应用交互的元素。常见的控件包括: 按钮 (Button):用于执行动作。文本框 (EditText):让用户输入文本。复选框 (CheckBox):允许用户选择或取消选择某个选项。单选按钮 (RadioButton):用于在多个选项中…...

docker desktop windows stop

服务docker改为启动 cmd下查看docker版本 {"builder": {"gc": {"defaultKeepStorage": "20GB","enabled": true}},"experimental": false,"registry-mirrors": ["https://hub.atomgit.com/"]…...

Qt容器类控件——QGroupBox和QTabWidget

文章目录 QGroupBox又来点餐QTabWidget使用演示 QGroupBox 容器类控件即里面可以容纳其他的控件 QGroupBox叫做分组框,可以把其他控件放在里面作为一组 QGroupBox的存在,只是为了让界面更好看一点,并不实现实质性的功能。 当界面较复杂的时候…...

qt-creator-10.0.2之后版本的jom.exe构建和编译速度慢下来了

1、Qt的IDE一直在升级,qt-creator的新版本下载地址 https://download.qt.io/official_releases/qtcreator/ 2、本人一直用的是qt-creator-10.0.2版本,官网历史仓库可以下载安装包qt-creator-opensource-windows-x86_64-10.0.2.exe https://download.qt…...

ESP32-WROOM-32 [创建AP站点-TCP服务端-数据收发]

简介 ESP32 创建TCP Server AP站点, PC作为客户端连接站点并收发数据 指令介绍 注意,下面指令需要在最后加上CRLF, 也就是\r\n(回车换行) ATRESTORE // 恢复出厂设置 ATCWMODE2 // 设置 Wi-Fi 模式为 softAP ATCIPMODE0 // 需要数据传输模式改为0, 普通…...

工业机器视觉中的常见需求

目录 学习目的 熟系 Halcon的原因 专业性强: 高性能: 丰富的功能库 学习 OpenCV 的原因 开源与免费: 灵活性与可扩展性: 广泛的应用: 学习资源丰富: 总结 学习背景 工业视觉检测中常见分类 一、定…...

JavaWeb的Filter详解

过滤器Filter 什么是Filter? 依据字面上的中文意思为过滤器。Filter的作用 当用户的请求到达指定的URL之前,可以借助Filter来改变这些请求的内容;同样地,当响应结果到达客户端之前,可以使用Filter修改输出的内容。什么…...

OpenLayers 可视化之热力图

注:当前使用的是 ol 5.3.0 版本,天地图使用的key请到天地图官网申请,并替换为自己的key 热力图(Heatmap)又叫热点图,是一种通过特殊高亮显示事物密度分布、变化趋势的数据可视化技术。采用颜色的深浅来显示…...

rknn优化教程(二)

文章目录 1. 前述2. 三方库的封装2.1 xrepo中的库2.2 xrepo之外的库2.2.1 opencv2.2.2 rknnrt2.2.3 spdlog 3. rknn_engine库 1. 前述 OK,开始写第二篇的内容了。这篇博客主要能写一下: 如何给一些三方库按照xmake方式进行封装,供调用如何按…...

Redis相关知识总结(缓存雪崩,缓存穿透,缓存击穿,Redis实现分布式锁,如何保持数据库和缓存一致)

文章目录 1.什么是Redis?2.为什么要使用redis作为mysql的缓存?3.什么是缓存雪崩、缓存穿透、缓存击穿?3.1缓存雪崩3.1.1 大量缓存同时过期3.1.2 Redis宕机 3.2 缓存击穿3.3 缓存穿透3.4 总结 4. 数据库和缓存如何保持一致性5. Redis实现分布式…...

postgresql|数据库|只读用户的创建和删除(备忘)

CREATE USER read_only WITH PASSWORD 密码 -- 连接到xxx数据库 \c xxx -- 授予对xxx数据库的只读权限 GRANT CONNECT ON DATABASE xxx TO read_only; GRANT USAGE ON SCHEMA public TO read_only; GRANT SELECT ON ALL TABLES IN SCHEMA public TO read_only; GRANT EXECUTE O…...

高危文件识别的常用算法:原理、应用与企业场景

高危文件识别的常用算法:原理、应用与企业场景 高危文件识别旨在检测可能导致安全威胁的文件,如包含恶意代码、敏感数据或欺诈内容的文档,在企业协同办公环境中(如Teams、Google Workspace)尤为重要。结合大模型技术&…...

微信小程序云开发平台MySQL的连接方式

注:微信小程序云开发平台指的是腾讯云开发 先给结论:微信小程序云开发平台的MySQL,无法通过获取数据库连接信息的方式进行连接,连接只能通过云开发的SDK连接,具体要参考官方文档: 为什么? 因为…...

【碎碎念】宝可梦 Mesh GO : 基于MESH网络的口袋妖怪 宝可梦GO游戏自组网系统

目录 游戏说明《宝可梦 Mesh GO》 —— 局域宝可梦探索Pokmon GO 类游戏核心理念应用场景Mesh 特性 宝可梦玩法融合设计游戏构想要素1. 地图探索(基于物理空间 广播范围)2. 野生宝可梦生成与广播3. 对战系统4. 道具与通信5. 延伸玩法 安全性设计 技术选…...

群晖NAS如何在虚拟机创建飞牛NAS

套件中心下载安装Virtual Machine Manager 创建虚拟机 配置虚拟机 飞牛官网下载 https://iso.liveupdate.fnnas.com/x86_64/trim/fnos-0.9.2-863.iso 群晖NAS如何在虚拟机创建飞牛NAS - 个人信息分享...

windows系统MySQL安装文档

概览:本文讨论了MySQL的安装、使用过程中涉及的解压、配置、初始化、注册服务、启动、修改密码、登录、退出以及卸载等相关内容,为学习者提供全面的操作指导。关键要点包括: 解压 :下载完成后解压压缩包,得到MySQL 8.…...

《信号与系统》第 6 章 信号与系统的时域和频域特性

目录 6.0 引言 6.1 傅里叶变换的模和相位表示 6.2 线性时不变系统频率响应的模和相位表示 6.2.1 线性与非线性相位 6.2.2 群时延 6.2.3 对数模和相位图 6.3 理想频率选择性滤波器的时域特性 6.4 非理想滤波器的时域和频域特性讨论 6.5 一阶与二阶连续时间系统 6.5.1 …...