Redis:save和bgsave的区别与使用解析

Redis面试必备:save和bgsave的区别与使用解析 Redis作为常用的内存数据库,数据备份是重要环节。本文将详细介绍Redis中的save和bgsave命令的使用方法和注意事项,帮助你更好地应对不同场景下的备份需求。 阅读详情

Redis持久化简介

Redis是一款高性能的Key-Value存储系统,但在实际应用中,为了防止数据丢失,我们通常会采用持久化机制。Redis提供了两种持久化方式:RDB(save)和AOF(bgsave)。

1. RDB(save)

RDB是一种快照(snapshot)持久化方式,通过将当前数据集的所有数据写入磁盘文件,实现数据的持久化。在RDB持久化过程中,Redis会生成一个压缩过的二进制文件,该文件包含了某个时间点上数据库中所有的键值对。

使用场景:

定期备份数据;
数据集比较大时,启动时加载数据速度更快。

2. AOF(bgsave)

AOF是一种追加写日志文件的持久化方式,它会将每一个写操作都记录到日志文件中。Redis在启动时会通过重新执行这个日志文件中的命令来恢复数据。

使用场景:

实时持久化,适用于需要实时同步数据到磁盘的场景;

对于需要追溯操作历史的场景,AOF更有优势。

save命令详解

  1. save命令的触发时机

save命令是通过执行save命令手动触发的,当执行save命令后,Redis会阻塞所有的客户端请求,将当前数据集写入到硬盘,直到持久化完成为止。

使用方法:> save
2. save的优缺点

优点:

简单,易于理解和操作;

生成的RDB文件相对较小。

缺点:

阻塞期间,Redis不能处理任何请求,影响性能;

需要谨慎使用,特别是在数据量较大的情况下,可能导致阻塞时间过长。

bgsave命令详解

1. bgsave命令的触发时机

bgsave命令是在后台异步执行的,不会阻塞主进程。执行bgsave时,Redis会fork出一个子进程,由子进程负责将数据集写入到磁盘文件。

使用方法:> bgsave
2. bgsave的优缺点

优点:

不会阻塞主进程,不影响Redis的正常服务;

在大数据集的情况下,相对save更具优势。

缺点:

生成的RDB文件相对较大,占用磁盘空间;

子进程执行bgsave时,可能会占用一定的系统资源。

如何选择save还是bgsave?
在实际应用中,我们需要根据具体的场景来选择使用save还是bgsave。下面是一些建议:

数据量小且对性能要求高: 可以考虑使用save,手动触发,不会影响正常服务。

数据量大且对性能要求较高: 推荐使用bgsave,后台异步执行,不会阻塞主进程。

实时性要求高: 考虑使用AOF持久化方式,结合bgsave实现实时持久化。

定期备份数据: 可以使用save生成周期性的RDB文件,以便快速恢复数据。

END

通过本文的介绍,我们详细了解了Redis中的save和bgsave命令,以及它们在持久化机制中的作用和优缺点。在实际应用中,根据项目需求和场景特点选择合适的持久化方式是非常重要的。希望本文对你在面试中的表现和实际工作中的决策有所帮助。

故障分析 | bgsave 导致 redis 定期卡顿案例一则 作者:任坤 现居珠海,先后担任专职 Oracle 和 MySQL DBA,现在主要负责 MySQL、mongoDB 和 Redis 维护工作。 本文来源:原创投稿 *爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。 1、背景 线上有套 redis 主从,版本4.0,开发抱怨说经常会出现周期性卡顿。 应用日志显示每隔10多分钟出现一次,一个普通调用就需要执行1s左右,然后自动恢复,get/set 均受影响 2、诊断 查看 redis qps 和 cpu 监控,均未发现有用线. 阅读详情

相关推荐

深入学习 Redis - 谈谈你对 Redis 的 RDB、AOF、混合持久化的了解吧?

bgsave 操作流程是通过 fork 创建子进程,让子进程来完成持久化操作~ 持久化就会把要生成的快照数据先保存到一个临时文件中,当这个快照生成完后,再删除之前的 rdb 文件,把新生成临时 rdb 文件名字改成刚才的删除的 rdb 文件的名字,然后使用新的文件替换旧的文件(rdb 对于 fork 之后的新数据,就置之不理了,这里要对比着 aof 来看).Ps:这后台处理是怎么做到的?并非如此,实际上这是一个 并发编程 的场景,此处 redis 使用的是 “多进程” 的方式来完成并发编程。

CYK_byte的博客 2148

015-学习Redis-持久化方案-bgsave/rdb/aof

这里写自定义目录标题一、回顾Redis1、redis的特点2、redis提供了磁盘持久化二、方案一:bgsave1、如何操作2、优缺点三、方案二:配置文件rdb1、配置文件解说:2、优缺点:四、方案三:aof1、 修改配置文件:修改配置后,重启服务:2、优缺点 一、回顾Redis 1、redis的特点 redis是一个内存中的数据结构存储系统。优点:内存操作速度比硬盘很快。缺点:但是内存没有办法保存数据。 2、redis提供了磁盘持久化 通过磁盘持久化功能,就可以把内存中的数据,持久化到磁盘当中去。数据就可

weixin_43989347的博客 3727

Matlab双目相机标定

1 概述 现在有许多双目相机在出厂时就已经标定好了,用户拿到手后可以直接使用,例如Intel Realsense系列。但是有些相机出厂的时候并没有完成标定工作,因而这个时候就需要我们自己来标定。由于笔者曾改装过一个双目相机,最远可以测至50m,因此有一定的心得体会想给大家分享一下。本文主要介绍双目相机标定的整个过程,以及导出标定数据的方法。 相机标定主要分为手动标定和自动标定,手动标定比较繁琐,这里主要介绍基于matlab工具箱的自动标定方式来对双目相机进行标定。具体的相关标定细节也可以参照这篇博客:m

weixin_46133643的博客 2万+

Redis持久化

以上就是这篇博客的主要内容了,大家多多理解,下一篇博客见!

weixin_73869209的博客 1814

Python逆向爬取Tik Tok,MsToken,X-Bogus以及signature

tiktok作为字节海外的自媒体平台,具有很非常大的价值,本文旨在教会大家实现Tik Tok的签名获取以及数据的最终爬取。

weixin_74305707的博客 3268

Dify视觉模型节点避坑指南:我用Qwen2.5-VL做OCR识别时踩过的3个坑(及解决方案)

本文分享了使用Dify平台和Qwen2.5-VL视觉模型进行OCR票据识别时遇到的三个常见问题及解决方案,包括文件变量传递、结构化输出和条件分支判断失效。通过实战经验,帮助开发者优化多模态模型在财务自动化中的应用,提升OCR识别精度和效率。

weixin_29284885的博客 401

redis 命令 Bgsave

如果使用,该命令将在 AOF 重写正在进行时BGSAVE SCHEDULE立即返回,并安排后台保存在下一次机会运行。如果已经有后台保存正在运行,或者如果有另一个非后台保存进程正在运行,特别是正在进行的 AOF 重写,则会返回错误。如果BGSAVE正确启动或Background saving scheduled与SCHEDULE子命令一起使用。Redis 分叉,父级继续为客户端提供服务,子级将数据库保存在磁盘上然后退出。从 Redis 版本 3.2.2 开始:添加了该SCHEDULE选项。

weixin_43346403的博客 451

招财牛猫|股社区|猫笔刀公众号历史文章13-21年(含评论),投资内容 收藏学习

招财大牛猫|股社区|猫笔刀公主号历史文章13-21年(含评论)

ZhaoCaiDaNiuMao的博客 7229

Redis Save 与 BGSAVE 的区别

Redis Save 与 BGSAVE 的区别 1、save保存数据到磁盘的方式: Redis Save 命令执行一个同步保存操作,将当前 Redis 实例的所有数据快照(snapshot)以 RDB 文件的形式保存到硬盘。 语法 redis Save 命令基本语法如下: redis 127.0.0.1:6379> SAVE 返回值 保存成功时返回 OK 。 2、BGSAVE保存数据到磁盘的...

进阶的蜗牛 1647

五、e2studio VS STM32CubeIDE之汉化

介绍stm32cubeide汉化方案和汉化包e2studio自带汉化包,在安装过程中可选择安装e2studio STM32CubeIDE切换中英文。

cl234583745的博客 1766

RagFlow实战:如何用DeepDoc引擎高效处理扫描PDF文档(附完整代码解析)

本文详细解析了如何利用RagFlow的DeepDoc引擎高效处理扫描PDF文档。通过实战演示从环境搭建、PDF预处理、文本检测与识别,到布局分析与表格结构提取的完整流程,并提供了完整的代码实现。该方案超越了传统OCR,能输出保留原始版面信息的结构化数据,为构建高质量知识库提供了强大支持。

weixin_29245767的博客 299

RDB持久化(redis服务器篇)

RDB 持久化 将数据以二进制文件的形式储存到硬盘里面 持久化 因为 Redis 服务器将数据储存在内存里面,而一旦服 务器被关闭、或者运行服务器的主机本身被关闭 的话,储存在内存里面的数据就会消失不 见。 如果我们仅仅是将 Redis 用作缓存的话,那么这种数据丢失带来的问题并不是非常大,我们只需要重启机器,然后再次将数据放到 缓存里面就可以了;但如果我 们将 Redis 用作数据库的话,那么这...

昔拉的博客 893

UNet 改进(19):与ASPP结合的图像分割模型

这个代码实现了一个改进版的UNet模型,在传统的UNet架构基础上,引入了ASPP模块来增强模型捕获多尺度上下文信息的能力。​​UNet主干网络​​:经典的编码器-解码器结构,带有跳跃连接​​ASPP模块​​:位于瓶颈层,用于提取多尺度特征。

2401_82355416的博客 877

Redis RDB 持久化:原理、配置与核心机制详解(黑马)

Redis的RDB持久化机制通过快照方式保存内存数据到磁盘,提供手动save和后台bgsave两种方式。bgsave通过fork子进程实现数据备份,采用写时复制技术保证数据一致性。配置文件可设置触发条件(如900秒内1次修改),但间隔过长可能导致数据丢失,过短则增加服务器压力。RDB优点是数据恢复快,缺点是备份耗时且存在数据丢失风险。

2301_80089095的博客 936

生成自定义工具栏

我们生成了和VBA时代几乎一样的常用的工具栏。用WPF也可以完成以后的插件开发,界面控件编写基本靠自己绘画,还有用代码去控制,代码结构像HTML,做过网站的应该可以很快入手。其它后台C#代码除了对控件代码的控制外,和WinForm基本相同,但目前来看用WPF是生成自定义工具栏的较好的办法。当然,你也可以在工具栏命令中调用WinForm程序,对Coreldraw进行操作,这也应该是比较高效的办法,下次会讨论。资源的加入是本次调试的难点之一,我们的目标是让图片资源嵌入到程序中去,不必去电脑文件目录去调用;

力先生C#程序开发 1373

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Redis设计与实现:第十章 - RDB持久化

参考:《Redis设计与实现》 文章目录1、RDB文件左右2、RDB文件的创建和载入1、SAVE-RDB文件创建2、BGSAVE-RDB文件创建3、RDB文件载入3、RDB文件自动间隔性保存1、save选项配置2、具体实现4、RDB文件结构 1、RDB文件左右 数据库状态:        服务器中非空数据库以及它们的键值对。 数...

了凡的博客 242

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

【redis深层次探索】RDB持久化

一、说明 因为Redis是内存数据库, 它将自己的数据库状态储存在内存里面, 所以如果不想办法将储存在内存中的数据库状态保存到磁盘里面, 那么一旦服务器进程退出,服务器中的数据库状态也会消失不见。 为了解决这个问题, Redis提供了RDB持久化功能, 这个功能可以将Redis在内存中的数据库状态保存到磁盘里面, 避免数据意外丢失。 RDB持久化既可以手动执行, 也可以根据服务器配置选项定期执行, 该功能可以将某个时间点上的数据库状态保存到一个RDB文件中。 RDB持久化功能所生成的RDB文件是一个经过压缩

Macky_He的博客 239

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

redis重启之后丢失数据之RDB持久化策略

因为要重启机器,之前用docker run时,仅想做缓存用,未考虑要持久化;docker restart redis导致原key-value丢失;仅遗留几个key 然后就查看了一下redis默认的持久化策略 alexcn.xyz:6371> keys * 1) "alex" 2) "alex2" alexcn.xyz:6371> CONFIG GET save 1) "save"...

飞奔的小土豆@1024 2254

Redis RDB

Redis下一小节:5-4 AOF Redis RDB RDB: 什么是RDB 触发机制-主要三种方式 触发机制-不容忽视的方式 试验 1、什么是RDB 2、触发机制-主要三种方式 (1)save(同步) 文件策略—》如果存在老的RDB文件,新的RDB文件会替换老的 时间复杂度—》O(n) (2)bgsave(异步) fock子进程在极少的情况下会阻塞...

泷泷养的乔小胖 1123

Redis的持久化方案—学习笔记

Redis提供了三种持久化方案,RDB、AOF以及两种混合使用。 RDB Redis Data Base, Redis可以用SAVE或者BGSAVE命令来创建.rdb文件将数据持久化到磁盘上,或者根据用户配置策略来触发持久化操作。 SAVE命令 Redis服务器阻塞执行持久化操作,期间不再响应外部请求。这种一般用户系统停机维护的场景。 BGSAVE命令 Redis服务器后台执行一个fork操作创建一个子进程用于后台执行持久化操作。 因为Linux内核下的copy-on-write机制的存在,子进程不用拷贝父

Corlin Blog 231

3、redis作为缓存,以及持久化机制

目录 什么是持久化? Redis为什么需要持久化 SAVE命令 BGSAVE命令 save,bgsave区别 默认配置 优点 缺点 AOF写入机制 写入磁盘机制 重写过程 新文件替代旧文件 优点: 缺点: 什么是持久化? 将数据从掉电易失的内存存放到能够永久存储的设备上 Redis为什么需要持久化 基于内存的 Redis持久化方式 RDB(Redis DB) AOF(AppendOnlyFile) RDB 在默认情况下,Redis将数据库快照保存在名字为du

m0_47120517的博客 170

《Redis设计与实现》阅读笔记5-RDB持久化

.

maniacxx的博客 347

十四:Redis持久化之rdb

十四:Redis持久化之rdb Redis提供了两种持久化的方式:AOF与RDB: RDB偏重在保存某个时间redis的快照;AOF 偏重在实时保存的效率上。两者方案侧重点不同。 RDB RDB:redis database 意思时在指定时间间隔内将内存中的数据写入到磁盘也就是说一段时间对redis进行一次快照;rdb写入的是二进制数据所以文件 大小也更紧凑些。 RDB: 一般应用在对数据冷备、复制传输,重启redis加载rdb的数据也更快一些。 配置项 可以在redis.conf中配置是否开启RDB(

勿在浮沙筑高台 665

Redis的RDB持久化

目录 RDB简介 RDB文件的创建与载入 SAVE命令执行时的服务器状态 BGSAVE命令执行时的服务器状态 RDB文件载入时的服务器状态 自动间隔性保存 设置保存条件 dirty计数器和lastsave属性 检查保存条件是否满足 RDB文件结构 databases部分 key_value_pairs部分 value的编码 字符串对象 列表对象 集合对象 哈希表...

今天吃了吗的博客 472

redis持久化方式

文章目录RDBSAVEBGSAVE还原AOF写入还原AOF重写对比RDBAOF特点 RDB 快照式持久化。 SAVE 阻塞redis主进程,直到RDB创建完成。 手动触发。 BGSAVE fork子进程。子进程创建RDB文件,主进程继续处理请求。 子进程共享父进程的内存空间,该空间只读。 父进程修改时,对应的内存页copyonwrite,修改复制之后的内存页。 只会同时执行一个BGSAVE命令。 可手动触发,也可以设置多个save条件,任意满足时执行bgsave持久化。 save 900

qq_40369829的博客 534

《Redis设计与实现》第十章 RDB持久化

Redis是内存数据库,它将自己的数据库状态存储在内存里面,所以要提供RDB持久化功能来避免数据以为丢失。 10.1 RDB文件的创建与载入 有两个Redis命令可以用于生成RDB文件,一个是SAVE另外一个是BGSAVE,Save会阻塞进程,bgssave不会。 10.1.1 SAVE命令执行时的服务器状态 只有在服务器执行完SAVE命令、重新开始接受命令请求之后,客户端发送的命令爱会被...

Za七杂⑧ 392
上一篇: 四七层是怎么回事 四层和七层有什么区别
下一篇: 接口的请求类型
IChen.
博客等级 码龄7年 2019粉丝 1017原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值