Redis(五)-持久化之RDB

五、Redis 持久化:RDB 与 AOF 深入解析与优化策略 默认情况下数据存储在内存中。如果 Redis 服务器意外崩溃或重启,所有未保存的数据都会丢失。本文将详细介绍 Redis 持久化机制的原理、优缺点、使用场景,以及如何优化 Redis 的持久化方案。在 Redis 作为高性能缓存和数据库使用的过程中,的场景,数据不会丢失,但 I/O 开销较大。:提高持久化 I/O 性能,减少写入延迟。查看持久化状态,优化 Redis 配置。AOF 重写不会丢失数据,Redis 会。,可能会导致文件过大。的同时,减少频繁磁盘 I/O 开销。方式,在指定的时间间隔内,将。 阅读详情
1. RDB是什么
  • RDB(Redis Database):在指定的时间间隔内将内存中的数据集快照写入磁盘,也就是术语Snapshot快照,它恢复时是将快照文件直接读到内存。默认文件名:dump.rdb
2. RDB产生的过程
  • Redis会单独创建(fork)一个子进程来进行持久化,会先将数据写入到一个临时文件中,待持久化过程结束后,再用这个临时文件替换上次持久化的文件。 整个过程中,主进程是不进行任何IO操作的,这就确保了极高的性能。

    其中:fork的作用是复制一个与当前进程一样的进程。新进程的所有数据(变量、环境变量、程序计数器等)数值都和原进程一致,并且作为原进程的子进程。

3. 何时会产生RDB文件
  1. 满足配置文件(redis/redis.conf)中默认的快照配置,就会产生一个新的dump.rdb文件。只需满足一个即可
    save 900 1 # 900秒(15分钟)内有1次更改
    save 300 10 # 300秒(5分钟)内有10次更改
    save 60 10000 # 60秒内有10000次更改。
  2. 使用save命令,可以立刻执行序列化操作,产生新的dump.rdb文件。
    此时redis只执行保存操作,其他功能阻塞,此时不能写入。
  3. 使用bgsave命令,redis在后台异步进行快照备份。
    同时还可以响应客户端请求,允许写入。
    可通过lastsave命令来获取最后一次成功执行快照的时间
  4. 使用shutdown命令,会立刻执行备份操作,产生新的rdb文件。(前提是开启了rdb备份)
  5. 使用flushall命令,也会立刻产生新的rdb文件。
    会清空数据,无实际意义
    flushdb命令不会产生新的rdb文件
4. 如何恢复RDB中的数据
  1. 将备份文件(dump.rdb)放在redis安装目录。(使用config get dir 命令获取目录)
  2. 启动服务即可完成恢复工作。
5.RDB优劣势
  • 优势
    1. 适合大规模数据恢复。这要求是在对数据完整性和一致性要求不高的前提下
    2. 生成RDB文件的时候,redis主进程会fork()一个子进程来处理所有保存工作,主进程不需要进行任何磁盘IO操作,从而确保了极高的性能
    3. 与AOF相比,在恢复大数据集的时候更快一些
  • rdb劣势
    1. redis意外挂掉的话,会丢失最后一次快照备份后的所有修改
    2. 没办法做到实时持久化。因为,每次备份时都要fork一个子进程。而fork的时候,内存中的数据被克隆了一份,会导致大约2倍的数据膨胀,耗内存耗时,可能会导致不能响应一些毫秒级的请求,这点需要考虑
    3. RDB文件使用特定二进制格式保存,在Redis版本演进过程中有多个格式的RDB版本,存在老版本Redis服务无法兼容新版RDB格式的问题(版本不兼容)
6. 停止RDB备份
  1. 方式一:注释掉redis.conf中的

    save 900 1
    save 300 10
    save 60 10000
    
  2. 方式二:执行命令:redis-cli config set save “”
    只对本次启动有效

    注意:只去掉redis.conf中save ""前面的#,是不行的

7. 其他
  • Redis默认也是采用RDB方式进行备份的,AOF功能是关闭的
Redis专题(五):Redis持久化(RDB和AOF) 本系列会持续输出Redis相关的知识整理,提升自己的同时希望能帮助到有需要的朋友,持续输出…持续输出…持续输出… 专题目录:目录传送 前言 在前面的文章我们简单介绍了Redis的数据结构的使用和简单的应用场景,希望能够帮助部分有需要的人。 介绍 在介绍持久化之前我们先来说说Redis为啥这么高性能?为啥需要持久化操作? 因为它所有的数据都在内存中,所有的运算都是内存级别的运算,大家也都知道存放于内存中的数据都是极其不安全的,收外界因素干扰过多,因此我们才需要 持久化操作。 下面我们来简单介绍一下持久. 阅读详情

相关推荐

LabVIEW+数据库应用系列保姆级教程,第一篇数据库连接

目录LabVIEW连接数据库的方法连接MySQL连接Oracle,SQL Server,Access等 LabVIEW连接数据库的方法 1、创建udl(Universal Data Link)是通用数据连接文件。界面操作,简单快捷。 2、编写连接字符串。需要熟悉连接字符串的结构,容易出错。 3、其他… 本教程教你使用第1种方法,也是最简单、最常用的方法。 连接MySQL 1、在MySQL Installer内安装MySQL Connector/ODBC,建议安装32位(X86),如下图: 2、创建ODBC

wwplh5520370的博客 1万+

Redis持久化之RDB(二)

上一篇博客中我们介绍了如何安装Redis,如果你还不了解请点击:RabbitMQ 入门 Helloworld。这篇中我们将会开始介绍Redis的持久化,持久化在工作当中用的是非常多的,例如hibernate,mybatis……,那么在Redis中的持久化分为RDB,AOF,在本篇博客中将介绍RDB 1.RDB(Redis DataBase)是什么 在指定的时间间隔内将内存中的数据集

cuipeng的博客 1026

Starlink第三代终端与第二代终端的差异分析

SpaceX星链第三代终端实现显著升级,硬件售价维持599美元不变但性能全面提升。相比第二代产品,第三代终端取消自动调节电机改为手动定向,防水防尘等级提升至IP67,天线面积扩大46%,支持235台设备连接(提升87%),下载速度可达1Gbps(提升4倍),延迟降至20ms以下。新增3个千兆接口和WiFi6支持,同时推出199美元单独路由器选项。这些改进使第三代终端在保持价格优势的同时,更好地满足户外、移动和商业场景需求,标志着SpaceX卫星互联网服务从亏损销售转向盈利模式的重要转折。

通信行业老兵、物联网从业者,做一个有趣的普通人。 3028

(error) ERR Errors trying to SHUTDOWN. Check logs.错误

(error) ERR Errors trying to SHUTDOWN. Check logs.错误 这个错误是因为,没有在redis的配置文件中指明redis的日志文件的位置,当然如果你已经在redis的配置文件中指明了redis对应的日志文件,也可能会报这个错误,那这两种情况具体该怎么解决呢,请看下文分解: 首先先在redis-cli的同级目录下创建一个redis的日志文件,然后把此文件的权限更改为,对所有的用户都可以进行读写操作,如下图: 然后去redis的配置文件中指明redis的日志文件的位

xzy的博客 5808

车载与安防项目实战:如何用RK3588搭配NVP6158C实现4路AHD摄像头BT1120接入与同步预览

本文详细解析了基于RK3588处理器与NVP6158C解码芯片实现4路AHD摄像头BT1120接入与同步预览的技术方案。针对车载环视和安防监控场景,重点探讨了硬件架构设计、BT1120接口配置、多路同步机制及Android HAL适配等核心问题,提供了从底层驱动到上层应用的完整实现路径,为相关领域的工程实践提供可靠参考。

weixin_30571465的博客 482

【SWPUCTF 2021 新生赛】hardrce

对每个字符的ASCII值进行按位取反操作(这种要进行自增马进行绕过。

XiaoHei的博客 460

ERR Errors trying to SHUTDOWN. Check logs.

使用shutdown命令报错: ERR Errors trying to SHUTDOWN. Check logs. 原因: 我们的日志文件没有配置 执行命令,会进行保存,但是权限不够,也就是要给rbd文件赋予权限。 解决办法: 1、进入我们的redis.conf配置文件,找到logfile设置日志文件路径,配置日志的路径 usr/local/bin/redis-log.log,然后保存退出 2、授予权限信息 # 给日志文件授予权限 chmod 777 /usr/local/bin/redis-l

七一 2062

平台跳跃游戏中的自动寻路,与地图导航扩展

平台游戏:主要的游戏方式是在2D平面上使用各种方式在悬浮平台上进行移动和穿过各种障碍。 现如的平台游戏中的平台特性与种类是很多的,像马里奥(FC)的单向支撑不可穿透的,或魂斗罗(FC)单向支撑可穿透的… \ 超级玛丽 魂斗罗 空洞骑士 蔚蓝 本博文 支撑 上 上 上 左、上、右 上 穿透 无 上、下 无 上(部分) 上下 所以本文主要以向上支撑并上下穿透的平台特性来进行实现 需求分析 在关卡设计后,地形的数据需要自动识别 地形中的平台可上下穿透移动,并可向上站立 平台的移动路..

MOV的博客 3062

(error) ERR Errors trying to SHUTDOWN. Check logs.

启动redis之后,无法关闭redis服务问题1: 出现这个错误首先要确定,生效的redis-config文件中,是否有配置logfile的设置,如果没有优先设置该位置。问题2: 因为之前的服务由于没有办法shutdowm掉,一直在启动着,导致没有办法重启redis服务,此时需要通过来杀死,然后再重新进行启动服务。 问题3: 由于当前的权限不够,所以需要修改文件夹权限。问题1解决: 给日志文件授予权限,否则无法写入 问题2解决: 通过:可以杀死进程号对应的进程,然后再次进行重启重启之后,又报

hfssss的博客 1167

基于Codex/Claude Code的学术技能包:13个Skill实现科研全流程自动化

写论文最头疼的是什么?是面对海量文献无从下手,还是实验数据一团乱麻,或者是好不容易有了结果,却卡在写作和格式调整上?如果你也经历过从选题到投稿的完整科研周期,就会明白每个环节都可能消耗大量时间精力。今天要分享的这套工具链,正是为了解决这些痛点而生——基于 Codex 和 Claude Code 平台的学术技能包(Academic Skills),它通过 13 个精心设计的 Skill,将一篇论文从 0 到 1 的全流程自动化、标准化,让你能更专注于研究本身。 这套技能包并非单一工具,而是一个覆盖文献阅读、数

weixin_33979203的博客 541

OpenHarmony WiFi子系统全解析:从架构到代码实现(大合集)

头文件路径[相对路径][相对路径][相对路径][相对路径]// 网络配置结构 (wifi_device_config.h)// SSID字符串// 预共享密钥// 安全类型// 网络ID// 优先级// 是否隐藏网络// 扫描信息结构 (wifi_scan_info.h)// SSID// BSSID (MAC地址)// 安全类型int rssi;// 信号强度// 频率// 信道宽度// 时间戳// 连接信息结构 (wifi_linked_info.h)

m0_67505153的博客 1057

Redis关闭服务错误——(error) ERR Errors trying to SHUTDOWN. Check logs.

Redis关闭服务错误——(error) ERR Errors trying to SHUTDOWN. Check logs. 解决办法: 个人只改了一下日志文件的目录就解决了,但是有个别情况不一样的,我也做出了解决办法 首先,我在关闭的时候,报出错误,告诉我们尝试关闭时错误,叫我们检查日志 那我们就去看一下日志目录: 打开redis.conf 我们这里没有设置目录,我们自己自定义一下,路径 /usr/local/redis_log/redis_log.log,这里redis_log目录需要自己手动创建

qq_46127735的博客 6947

【智能车Code review】——小S与中S道路判断

基本思想: 找到中线的左拐点和右拐点,并且计算出两点之间的空间距离。通过限制空间距离,分为中S和小S。 注意这种情况:当20行以下的中线斜率比较陡,此时可以通过人为限制设定,将第0行的中线设置为拐点。 if (flag_centre_right_point == 0 && flag_centre_left_point == 1 && parameterB >= 0.5 && centre_left_point[0] >= 33) { .

hanhan的博客 6102

【Redis】五、Redis持久化、RDB和AOF

Redis 是内存数据库,如果不将内存中的数据库状态保存到磁盘,那么一旦服务器进程退出,服务器中的数据库状态也会消失。所以 Redis 提供了持久化功能!

hhb442的博客 1279

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

(五)Redis持久化之RDB和AOF

Redis会单独创建(fork)一个子进程来进行持久化,会先将数据写入到一个临时文件中,待持久化过程都结束了,再用这个临时文件替换上次持久化好的文件。整个过程中,主进程是不进行任何IO操作的。这就确保了极高的性能。如果需要进行大规模数据的恢复,且对于数据恢复的完整性不是非常敏感,那RDB方式要比AOF方式更加的高效。RDB的缺点是最后一次持久化后的数据可能丢失。我们默认的就是RDB,一般情况下不需要修改这个配置!RDB 持久化方式能够在指定的时间间隔内对你的数据进行快照存储。

星星学霸的博客 1011

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Redis持久化之RDB(五)

持久化 Redis提供了2个不同形式的持久化方式。 RDB(Redis DataBase) AOF(Append Of File) 什么是持久化? 持久化就是将有用的数据以某种技术保存起来,将来可以再次取出来应用。数据库技术,将内存数据以文件的形式保存在永久介质中(磁盘等)都是持久化的例子。 为什么需要持久化? Redis对数据的操作都是基于内存的,当遇到了进程退出、服务器宕机等意外情况,如果没有持久化机制,那么Redis中的数据将会丢失无法恢复。有了持久化机制,Redis在下次重启时可以利用之前持久.

不管多大的困难都要跨过去 280

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Redis(五):Redis底层原理(持久化RDB & AOF)

一文搞懂Redis持久化:RDB(Redis DataBase)是 Redis 的快照持久化方式,通过定期保存内存数据到 .rdb 文件中,适合快速恢复和备份;AOF(Append Only File)则记录每条写操作到日志文件中,恢复时逐条回放命令,数据更完整但恢复较慢。两者可结合使用,实现高性能与高可靠性的平衡。

一个程序员的自我救赎。 2136

redis学习(五)——redis的持久化rdb和aof

持久化 什么是持久化:利用永久性存储介质将数据进行保存,在特定的时间将保存的数据进行恢复的工作机制称之为持久化 为什么要进行持久化:防止数据的意外丢失,确保数据安全性 持久化过程保存的是什么?有两种 将当前数据状态进行保存,快照形式,存储数据结果,存储格式简单,关注点在数据。在redis中这种文件的保存形式为二进制,在redis中称之为RDB 将数据的操作过程进行保存,日志形式,存储操作过程,存储格式复杂,关注点在数据的操作过程。在redis中只保存写的命令,对读的命令不保存,在redis中称

qq_35003730的博客 374

redis设计与实现(五)RDB与AOF持久化

因为AOF持久化是通过保存被执行的写命令来记录数据库状态的,AOF文件中的内容会越来越多,体积过大的AOF文件很可能对Redis服务器、甚至整个宿主计算机造成影响,并且AOF文件的体积越大,使用AOF文件来进行数据还原所需的时间就越多。不过,使用子进程也有一个问题需要解决,因为子进程在进行AOF重写期间,服务器进程还需要继续处理命令请求,而新的命令可能会对现有的数据库状态进行修改,从而使得服务器当前的数据库状态和重写后的AOF文件所保存的数据库状态不一致。

m0_74973115的博客 1013

redis学习五redis的持久化RDB,fork,copyonwrite,AOF,RDB&AOF混合使用

本来要写b=4,还没写,然后修改b=6了,就把b=6写入到磁盘里面去了,在写入b=6的时候a右变成8了,然而这个时候a不会再写了,(如果启动后没有发生过重写,则使用启动时的AOF文件大小)。到物理地址的一个映射,假设redis有个a的key,对应的虚拟地址是3,指向了物理地址的8位置,redis。redis通过fork的方式创建一个子进程,且数据没有真的拷贝出来,只是加了相应的指针指向,当父进程有某些。值改变了以后,会触发内核级别的一个写时复制,则在内存中对应物理地址中,让父进程中的那个key指向新。...

lsd&xql的博客 804

【Redis源码】详细的RDB和AOF持久化过程(五)

(一)分析RDB和AOF的优劣势: 优劣势官方介绍:https://redis.io/topics/persistence 持久化详细介绍:http://oldblog.antirez.com/post/redis-persistence-demystified.html 1.RDB: RDB的优点: 1)RDB是redis数据非常紧凑的单文件时间点表示。RDB文件非常适合备份...

c-rain 721

五、Redis持久化之RDB与AOF

  Redis是内存型数据库,一旦电脑重启,那么内存中的数据就会全部消失。为了保证数据的完整性,我们需要Redis持久化技术,将Redis中的数据序列化到硬盘上。其中,Redis持久化主要有两种方式:RDB与AOF。 (一)RDB   RDB是对内存中的数据做一份快照,将做快照的那一时刻,所有的数据及其值持久化到硬盘上,那不在乎所有数据对象的操作过程。   1、RDB触发的方式   (...

panchang199266的博客 251

Redis系列(五)-Redis的持久化(一篇文章让你了解Redis的RDB和AOF持久化)

持久化作用 Redis 是内存数据库,断电及失,因此需要持久化,默认使用RDB,一般情况下我们无需修改RDB配置,即可使用。 RDB (Redis DataBase) 什么是RDB Redis会单独创建一个fork子进程来进行持久化,子进程中循环所有的数据,将数据写入到二进制文件中,会先将数据 写入到一个临时文件中,待持久化过程都结束了,在用这个临时文件替换上次持久化好了的文件。整个过程中,主进程是不进行任何IO操作的,确保极高的性能,如果需要进行大规模数据的回复,且对数据恢复的完整性不是非常敏感,那RDB

qq_33631756的博客 912

Redis 系列(五):持久化——RDB、AOF 与混合持久化

理解 RDB、AOF、混合持久化三种方式的机制、代价与恢复语义;掌握 fork + COW、fsync 策略、AOF 重写等关键概念;能设计符合业务丢失容忍度的持久化策略,并在文件损坏后完成修复与恢复。:完成(单线程事件循环——持久化是"阻塞点"的重要来源)与(内存结构)。:Redis 8.10.0(cygwin 移植版,主实例 6379 用于常规实验,隔离实例 6380 用于断电/损坏等破坏性实验)、redis-py 8.1.0、Python 3.11.6、Windows 11。

QAZ600888的博客 244

Redis学习五:Redis的持久化-RDB

RDB(Redis DataBase) 一、是什么 1.概念:在指定的时间间隔内将内存中的数据集快照写入磁盘,也就是行话讲的Snapshot快照,它恢复时是将快照文件直接读到内存里 2.执行方式: Redis会单独创建(fork)一个子进程来进行持久化,会先将数据写入到一个临时文件中,待持久化过程都结束了,再用这个临时文件替换上次持久化好的文件。整个过程中,主进程是不进行任何IO操作的...

weixin_30646505的博客 94

Redis的学习与总结五:RDB持久化

        Redis 是一个内存数据库,它将自己的数据库状态存储在内存里面,所以如果不想办法将内存中的数据库状态保存到磁盘里,那么服务器一旦退出,服务器中的数据库状态也会消失不见。RDB是Redis用来进行持久化的一种方式,RDB持久化既可以手动执行,也可以根据服务器的配置自动执行,该功能可以将某个时间点上的数据库状态保存到一个RDB文件中,该文件是一个压缩二进制文件,由多个部分组成,通过该...

qq_26891141的博客 345
上一篇: Redis(四)-配置文件解读
下一篇: Redis(六)-持久化之AOF
松林羊
博客等级 码龄11年 43粉丝 58原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值