关于Redis中的RDB和AOF策略

【Redis】正确回答RDB-AOF持久化策略面试问题 一、关于Redis的面试真题: 如何用Redis实现分布式锁? 简要说说你对RDB-AOF持久化策略的理解? RDB-AOF持久化策略的优缺点在哪? 经典问题:先更新数据库,还是先更新缓存? 失效策略:缓存过期都有哪些策略? 负载均衡:一致性哈希解决了哪些问题? 缓存高可用:缓存如何保证高可用? redis 集群模式的工作原理能说一下么? 在集群模式下,redis 的 key 是如何寻址的? 分布式寻址都有哪些算 阅读详情

对于RDB和AOF的理解与补充

Redis中的数据持久化策略(RDB)

Redis是一个内存数据库,所有的数据都直接保存在内存中,那么,一旦Redis进程异常退出,或服务器本身异常宕机,存储在redis中的数据就会凭空消失

Redis作为一个优秀的中间件,必定时拥有自己的持久化数据备份机制的,redis中主要有两种持久化策略用于将存储在内存中的数据备份到磁盘上,并且在服务器重启时进行备份文件重载。

RDB 和 AOF 是 Redis 内部的两种数据持久化策略,这是两种不同的持久化策略,一种是基于内存快照,一种是基于操作日志,那么本篇就先来讲讲 RDB 这种基于内存快照的持久化策略。

一、什么是 RDB 持久化策略

RDB(redis database),快照持久化策略。RDB 是 redis 默认的持久化策略,你可以打开 redis.conf,默认会看到这三条配置。

save 900 1            900秒内执行一次set操作 则持久化1次  
save 300 10           300秒内执行10次set操作,则持久化1次
save 60 10000         60秒内执行10000次set操作,则持久化1次

RDB又分为两种,一种是同步的,调用save命令可触发redis进行RDB文件生成备份,但是这个是一个同步命令,在备份完成之前,redis服务器不响应客户端任何请求,另一种是异步的,调用bgsave命令,redis服务器fork一个子进程进行RDB文件备份生成,与此同时,主进程依然可以响应客户端请求。

显然,异步的 RDB 生成策略才是主流,除了某些特殊情况,相信不会有人会在生产环境中用 save 命令阻塞 redis 服务来生成 RDB 文件的。

save 和 bgsave,这两个命令需要我们手动的在客户端发送请求才能触发,我们叫做主动触发。

1、save 配置

save配置是一个非常重要的配置。它配置了 redis 服务器在什么情况下自动触发 bgsave 异步 RDB 备份文件生成。

基本语法格式:save <seconds> <changes>

当 redis 数据库在 秒内,数据库中的 keys 发生了 次变化,那么就会触发 bgsave 命令的调用。

2、dbfilename 配置

dbfilename 配置项决定了生成的 RDB 文件名称,默认配置为 dump.rdb。

名称:dbfilename dump.rdb
3、rdbcompression 配置

rdbcompression 配置的是 rdb 文件中压缩启用配置,基本语法格式:rdbcompression yes(|no)

4、stop-writes-on-bgsave-error 配置

stop-writes-on-bgsave-error 配置了,如果进行 RDB 备份文件生成过程中,遭遇错误,是否停止 redis 提供写服务,以警示用户 RDB 备份异常,默认是开启状态。

5、dir 配置

dir 配置的是 rdb 文件存放的目录,默认是当前目录。dir ./

6、rdbchecksum 配置

rdbchecksum 配置 redis 是否使用 CRC64 校验算法校验 RDB 文件是否发生损坏,默认开启状态,如果你需要提升性能,可以选择性关闭。

rdbchecksum yes(|no)

AOF是redis中的另一种数据持久化策略,它基于操作日志,也是一个很优秀的持久化策略

 一、什么是 AOF 持久化策略

AOF即append only file 当redis采用这种数据持久化策略的时候,每当redis服务器收到一条更新命令时,操作结束后会将这条命令添加到aof内存缓冲区,特定的时间下刷新缓冲区到磁盘文件中,也就是我们的aof文件

默认的 redis 启动配置文件中,会有这么两条配置:

 appendonly 指定 redis 是否启用 AOF 持久化策略,appendfilename 指明生成的 AOF 文件名称。

edis.conf 中还有 appendfsync 这么一条配置,它指明 AOF 文件的写入频率,即便 linux 中文件 IO 使用的高效的 epoll,但每收到一条更新命令就进行一次文件 IO,未免也太低效,况且也没必要。

appendfsync 的配置项有以下三种值可选:

  • always:每一次系统 serverCorn 函数调用就刷新一次缓存区
  • everysec:每秒执行一次磁盘写入,期间所有的命令都会存储在 aof 缓存区
  • no:不做控制,任由操作系统决定什么时候刷新缓冲区

redis 默认配置是 everysec,即每秒刷新一次缓存区。

二、AOF 重写

随着redis服务器运行时间的持续,生成的aof文件只会越来越大,redis 提供 AOF 重写策略帮助优化和压缩 aof 文件。

三、RDB 与 AOF

RDB基于内存快照,有两种方式save和bgsave,前者会阻塞redis服务,后者是异步fork子进程不影响主进程提供服务,大部分情况,我们会通过配置时间间隔触发RDB文件写入,RDB文件中国保存的是redis内存中所有的数据一份快照

优点是:

1.相同的数据量下,rdb文件要小于aof文件,且恢复速度要快于aof

2.rdb文件中是整个数据的完整的备份快照,数据存储紧凑即便不同版本的redis,也能顺利恢复

3.整个rdb持久化,只需要fork一个子进程进行持久化,父进程依然可以提供服务,效率最大化

缺点是:
1.容易丢失数据,即便配置了事件时间触发备份,也至少丢失一秒数据

2.如果数据量太大,fork子进程的时候会阻塞毫秒级别时间

AOF是基于命令操作日志,每条更新命令都会被刷到缓存区,然后在特定的时间节点被写入apf磁盘文件

优点是:

1.相较于RDB,AOF数据可靠性更强,最多丢失一秒数据

2.数据库容错率变好,一些误操作可以通过直接改aof文件进行回退

缺点是:

1.AOF文件通常较大且恢复效率比不上RDB,不适合做数据备份

总的来说,AOF 策略会使数据稳定性更高,具有更完整的数据备份,RDB 恢复效率高适合做灾难恢复,建议生产环境上两者都开启。

手把手教你编写PCIe设备驱动:基于Linux内核的实战教程 本文详细介绍了基于Linux内核的PCIe设备驱动开发全流程,包括环境准备、设备探测、中断处理、DMA配置等核心内容。通过实战代码示例和Makefile编写指南,帮助开发者快速掌握PCIe驱动开发技术,实现高性能设备驱动开发与优化。 阅读详情

相关推荐

Comsol 管道导波裂纹检测:从建模到求解的完整流程解析

本文详细解析了使用Comsol Multiphysics进行管道导波裂纹检测的完整仿真流程。从几何建模、材料定义、物理场设置到网格划分与求解后处理,系统阐述了如何构建高保真虚拟模型以模拟导波与裂纹的相互作用。重点分享了激励信号设置、频散效应处理及参数化扫描等实战技巧,旨在帮助工程师与研究人员高效优化无损检测方案,降低实验成本。

weixin_29207439的博客 73

15. Redis之持久化

一. RDB(Redis DataBase) 1. 概念 在指定的时间间隔内将内存中的数据集快照写入磁盘,也就是行话讲的Snapshot快照,它恢复时是将快照文件直接读到内存里。 Redis会单独创建(fork)一个子进程来进行持久化,会先将数据写...

chijianxu0423的博客 263

SoIC、CoWoS、InFO一次讲透:从2D/2.5D/3D看懂先进封装

先进封装是后摩尔时代提升芯片性能的关键路径,但面对SoIC、CoWoS、InFO这些名词,很多人容易混淆。理解它们,需从最基本的2D、2.5D、3D封装概念入手:2D是传统平房,2.5D通过硅中介层实现高密度互连,3D则让芯片直接堆叠。CoWoS作为2.5D中介层封装,已成为AI芯片与HBM高带宽存储集成的行业标准;SoIC通过铜-铜混合键合实现真正的3D堆叠,为逻辑与缓存提供极致带宽;InFO以扇出型封装兼顾成本与集成度,广泛用于移动SoC。在系统级封装(SiP)和CPO共封装光学等前沿趋势中,这些技术往

weixin_42388898的博客 309

redis的备份原理

redis主从复制,哨兵模式

优快云lele666的博客 1550

深入解析CRC-16校验算法及其Verilog硬件实现

本文深入解析了CRC-16校验算法的原理及其在Verilog中的硬件实现方法。从基础的模2除法到串行和并行实现方案,详细介绍了LFSR结构、状态转移分析以及工业应用中的优化技巧。通过实际案例和性能对比,帮助开发者理解如何选择适合的CRC实现方案,确保数据传输的可靠性。

yolo5detector的博客 321

避坑指南:STM32移植CanFestival时那些没人告诉你的细节(含TJA1050硬件适配)

本文深入解析STM32移植CanFestival协议栈时的关键细节与TJA1050硬件适配技巧,涵盖AVR残留代码清理、定时器中断优化及CAN通信稳定性提升方案。特别针对TJA1050在特定波特率下的信号畸变问题提供实战解决方案,帮助开发者规避移植过程中的隐形陷阱,实现工业级稳定通信。

work3的博客 759

Redis RDB 和 AOF

导读 RDB 和 AOF 对比: 持久化方式选择 如果对数据安全性要求极高,应该同时使用两种持久化方式。 如果可以承受若干时间内的数据丢失,可以只使用 RDB 持久化。 不建议只使用 AOF 持久化,因为定时生成 RDB 快照(snapshot)非常便于进行数据库备份,并且 RDB 恢复数据集的速度要比 AOF 恢复的速度要快。 RDB 和 AOF 的恢复优先级 如果 Redis 同时使用 RDB 和 AOF 持久化,Redis 会优先使用 AOF 进行恢复数据。 在启动 Redis 时,如果已经存在了

m0_61802230的博客 980

手把手教你用FPGA实现SGMII接口:从IP核配置到板级调试全流程

本文详细介绍了如何在Xilinx 7系列FPGA上实现SGMII(Serial Gigabit Media Independent Interface)接口的全流程,包括IP核配置、约束编写和硬件调试。通过具体的硬件选型建议、软件工具链配置和PCB设计规范,帮助开发者快速构建稳定可靠的千兆通信链路,并提供了常见故障排查和性能优化技巧。

weixin_29194693的博客 295

Redis--06--持久化策略---内存优化策略

Redis持久化 关于Redis持久化的说明 redis默认条件下支持数据的持久化操作. 当redis中有数据时会定期将数据保存到磁盘中. 当Redis服务器重启时 会根据配置文件读取指定的持久化文件.实现内存数据的恢复. 持久化方式介绍 1.RDB模式 特点: RDB模式是redis的默认的持久化策略. RDB模式记录的是Redis 内存数据的快照. 最新的快照会覆盖之前的内容 所有RDB持久化文件占用空间更小 持久化的效率更高. RDB模式由于是定期持久化 所以可能导致数据的丢失. 命令: s

时光里的博客 347

别再只盯着DDR5了!聊聊3D DRAM:它凭什么能解决AI算力的内存墙难题?

本文深入探讨了3D DRAM技术如何突破AI算力的内存墙限制。通过立体堆叠架构,3D DRAM在存储密度、带宽和延迟方面实现显著提升,有效解决AI训练和推理中的内存瓶颈问题。文章还分析了三星、SK海力士等巨头的技术路线图,并指出商业化面临的挑战与机遇。

weixin_42685438的博客 188

Python爬虫实战:爬取携程旅游平台数据,我拆解了动态反爬+Cookie续命(附完整可运行代码)

反爬类型表现形式应对思路sign参数返回403/空数据逆向JS还原加密逻辑Cookie时效登录后1小时Cookie失效定时刷新Cookie/保存登录态行为检测爬取过快触发验证码模拟真人延时/随机点击IP封禁单IP爬取超50条数据被封付费代理池/降低请求频率爬取携程旅游平台数据的核心,不是“简单的HTTP请求”,而是“理解平台的反爬逻辑并合规适配”——从sign参数破解到Cookie维护,再到行为模拟,每一步都是对HTTP协议、前端加密、用户行为的深度理解。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1713

Redis 持久化策略 : RDB持久化、AOF持久化、混合持久化

文章目录什么是持久化RDB持久化SAVA与BGSAVARDB持久化的优缺点AOF持久化AOF重写AOF持久化的优缺点混合持久化混合持久化的优缺点 什么是持久化 由于内存具有易失性,无法进行断电存储,所以在重启之后数据就会丢失,但是硬盘具有永久存储的特性,所以持久化就是将数据从内存中保存到硬盘的过程,目的就是为了防止数据的丢失。 同时持久化也是Redis比起Memcached的优势,Memcached并不支持持久化 Redis的持久化分为以下三种 RDB(Redis DataBase)持久化 AOF(Ap

凌桓丶的博客 861

基于YOLOv10深度学习的花生种子霉变检测系统

YOLO(You Only Look Once)是当前最先进的目标检测算法之一,具有快速、精准的特性。YOLOv10是YOLO系列的最新版本,相较于之前的版本,YOLOv10在特征提取、模型精度和速度上都有了显著的提升。YOLOv10采用了更深的卷积神经网络、更多的跨层特征融合方法,使得其在不同尺寸物体的检测和复杂场景的处理上都表现出了优异的性能。YOLOv10特别适合应用在需要快速处理并检测大量图像的任务中,如花生种子霉变检测等,能够实现精准、高效的检测。

2201_76125393的博客 648

Redis的持久化策略-AOF和RDB(详细图解)

图解Redis持久化策略,带你快速入门。Redis的持久化策略-AOF和RDB(详细图解)

一年,我很需要这一年 1620

OV9734 DATASHEET,完整规格书

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

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Redis持久化策略——RDB、AOF、混合

RDB、AOF、混合持久化、过期KEY清除策略

天羽云龙的博客 3839

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

【Redis宕机啦!】Redis数据恢复策略:RDB vs AOF vs RDB+AOF

本文深入探讨了Redis服务宕机后的数据恢复方案,重点介绍了三种持久化策略:RDB快照、AOF日志及两者的混合使用。RDB提供快速恢复但数据丢失风险较大;AOF确保数据安全但恢复速度较慢;RDB+AOF则结合两者优势,既保证数据安全性又兼顾恢复效率。通过对比分析,帮助读者根据实际需求选择最适合的持久化策略。

欢迎来到我的技术空间!我是一名经验丰富的Java开发工程师,热衷于分享我在软件开发领域的知识和心得。在这个博客里,您会发现一系列关于Java编程的文章,包括最佳实践、技术趋势、代码优化技巧以及一些有趣的项目案例。无论是初学者还是有经验的开发者,都能在这里找 1559

Redis--持久化策略(AOF与RDB)

Redis如何实现数据不丢失?Redis 共有三种数据持久化的方式:AOF 日志,RDB快照,混合持久化方式。

你只管努力,其他的交给天意。 1370

Redis持久化策略之RDB与AOF

本文重点介绍以下内容:RDB持久化策略的思想与具体执行流程、AOF持久化策略的思想与具体流程、AOF重写机制、RDB与AOF比较以及混合持久化方式

罅隙的博客 933

Redis的持久化策略(RDB、AOF、RDB-AOF混合持久化)

由于 redis 是一个内存数据库,所谓内存数据库,就是将数据库中的内容保存在内存中,这与传统的MySQL,Oracle等关系型数据库直接将内容保存到硬盘中相比,内存数据库的读写效率比传统数据库要快的多(内存的读写效率远远大于硬盘的读写效率)。redis持久化是指在指定的时间间隔内将内存中的数据集快照(snapshotting)写入磁盘,恢复时是将快照文件读入内存,用来保证数据的持久性。通过使用RDB-AOF混合持久化,用户可以同时获得RDB持久化和AOF持久化的优点,”配置项开启AOF混合持久化。...

流楚丶格念的博客 2059

Redis持久化机制详解:RDB、AOF与混合方式及选择策略

Redis 可以通过创建快照来获得存储在内存里面的数据在某个时间点上的副本。Redis 创建快照之后,可以对快照进行备份,可以将快照复制到其他服务器从而创建具有相同数据的服务器副本(Redis 主从结构,主要用来提高 Redis 性能),还可以将快照留在原地以便重启服务器的时候使用。快照持久化是 Redis 默认采用的持久化方式,在redis.confsave 900 1 #在900秒(15分钟)之后,如果至少有1个key发生变化,Redis就会自动触发bgsave命令创建快照。

mxt51220的博客 1311

Redis持久化策略(RDB/AOF)及选型

Redis持久化的意义:防止服务或系统宕机导致数据丢失。Redis提供了两种持久化策略:RDB(Redis DataBase)、AOF(Append Only File)。注:RDB和AOF可以同时使用,也可以都不使用。在前者的情况下Reids会优先使用AOF恢复数据(完整度高),后者情况下Redis将变成纯内存数据库(断电即失)。

qq_42026590的博客 916

Redis持久化策略:RDB和AOF的优缺点和选型

本文介绍了Redis的两种持久化策略:RDB和AOF,分析了它们的原理、优缺点和选型建议,希望能对读者使用Redis有所帮助。

TaloyerG的博客 1860

Redis持久化策略:RDB与AOF详解

Redis提供了两种主要的持久化机制来保证数据安全:RDB(Redis Database)和AOF(Append Only File)。本帖详细介绍这两种策略的工作原理、优缺点及配置方式。

Mickey的博客 746

Redis持久化策略:RDB 和 AOF

Hello,大家好,我是Go。在现代应用程序的开发中,数据的稳定性和持久性是至关重要的。大多数应用选择将数据存储在内存中以提高性能,但一旦发生断电或及其故障,内存数据就会丢失。在这方面,Redis作为一种高性能的内存数据库,通过其持久化策略为我们提供了强大的解决方案。本文将探讨Redis的持久化策略,揭示其如何确保数据在内存中的稳固存储。到此,对于RDB和AOF这两个持久化策略也就阐述完毕了。希望这些能够帮助大家,解决大家的问题。大家一起进步!笔者文章如有不足,欢迎随时指出!

Auguest0820H的博客 991

Linux RDB和AOF比较和选择策略【redis】

前言✍ 学习完前面的【????RDB】和【AOF????】我们就要思考AOF和RDB的选择以及一些对比让我们有更好的认识 对比 RDB AOF 启动优先级 低 高 体积 小 大 恢复速度 快 慢 数据安全性 丢数据 根据策略决定 RDB 优点: RDB快照是一个压缩过的非常紧凑的文件,保存着某个时间点的数据集,适合做数据的备份,灾难恢复; 可以最大化Redis的的性能,在保存RDB文件,服务器进程只需要fork一个子进程来完成RDB文件的创建,父进程不需要做IO操作

qq_46489085的博客 814

【Redis笔记】一起学习Redis | 聊聊Redis的持久化策略,AOF和RDB

一起学习Redis,探讨Redis的RDB,AOF及混合式的数据持久化方案 !

长路漫漫的歇脚处 1148

【redis】AOF和RDB的过期删除策略

在 Redis 中,RDB(Redis 数据库快照)和 AOF(追加文件)持久化策略涉及到的过期删除策略有所不同。这两种策略在处理过期键的删除时有不同的机制和影响。以下是对 RDB 和 AOF 过期删除策略的详细介绍。

senkorl 392
上一篇: Redis事务机制 -Redis 核心技术与实战
下一篇: MySQL篇
<西红柿>
博客等级 码龄5年 8粉丝 21原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值