华为OD技术面真题 - 数据库Redis - 2
文章目录说说Redis的持久化机制RDB持久化AOF持久化混合模式不同持久化方案适合什么场景Redis内存淘汰策略了解吗什么是Redis事务说说Redis的持久化机制Redis是内存数据库如果不提供持久化机制当redis进程退出或者宕机时数据会丢失。redis为了保证重启/宕机等情况保证数据不全部丢失提供了持久化机制。Redis提供三种持久化机制快照(RDB)可追加文件(AOF)RDB和AOF混合持久化RDB持久化RDB持久化本质上是创建当前Redis数据的快照RDB文件副本。有了RDB文件之后在发生程序崩溃/重启可利用RDB恢复数据库内容Redis默认的持久化机制。RDB持久化触发方式手动触发手动执行save命令阻塞当前Redis服务器直到RDB过程完成为止对于内存 比较大的实例会造成长时间阻塞线上环境不建议使用。手动执行bgsave命令Redis进程执行fork操作创建子进程RDB持久化过程由子 进程负责完成后自动结束。阻塞只发生在fork阶段一般时间很短。自动触发在redis.conf配置文件默认会有save m n即在m秒内有n次修改时自动触发bgsave生成rdb文件。默认情况下执行shutdown命令如果没有开启aof持久化也会自动触发save命令。RDB持久化的优缺点优点文件体积小读取RDB文件恢复数据快。缺点RDB方式实时性不够无法做到秒级的持久化fork 子进程有性能和内存压力。RDB也是进行主从同步数据的载体。AOF持久化AOF的出现是为了解决 RDB 数据丢失窗口过大的问题提供更好的更好实时性保存的持久化机制。通过更改redis.conf配置文件中appendonly yes来启用AOF持久化。AOF持久化本质上看作一个操作日志文件通过记录更改数据库的命令然后落盘到文件中以达到发生程序崩溃/重启时重放命令恢复数据。AOF的持久化功能实现可分为以下步骤;命令追加append所有写命令会追加到AOF缓冲区中。文件写入(write)将 AOF 缓冲区的数据写入到 AOF 文件中此步是将AOF缓存区数据写入到操作系统内核缓冲区。此时并没有进行数据落盘。文件同步(fsync)根据appendfync配置redis会按照指定频率调用fync函数强制数据落盘保证数写入磁盘文件。这步执行完成后才代表数据真正被保存redis中提供appendfync策略有以下几种always: 同步写回,执行写命令之后立即执行命令追加和文件写入步骤同时主线程调用fsync命令阻塞同步直到数据落盘。最安全的一种策略理论上不会丢失数据同时性能最差。Everysec: 每秒写回每个写命令执行完先把日志写到AOF文件的内存缓冲区并执行write操作后台线程每隔一秒执行fync写入磁盘性能 实时性综合的方案No:操作系统控制的写回reids不会主动执行fsync命令。实时性最差 性能最好的方案。上面提高AOF本质是以追加方式记录Redis已经执行的写命令随着时间越来越长AOF文件会变得越来越大。如果不加以控制AOF文件越大导致数据恢复也越慢基于此Redis提供AOF重写机制限制AOF文件不断增长。AOF重写机制原理是通过读取数据库中的键值对来实现的程序无须对现有 AOF 文件进行任何读入、分析或者写入操作。步骤大概如下AOF重写会执行大量写操作reids将AOF重写使用子进程执行。AOF 文件重写期间Redis 还会维护一个AOF 重写缓冲区该缓冲区会在子进程创建新 AOF 文件期间记录服务器执行的所有写命令。当子进程完成创建新 AOF 文件的工作之后服务器会将重写缓冲区中的所有内容追加到新 AOF 文件的末尾使得新的 AOF 文件保存的数据库状态与现有的数据库状态一致。服务器用新的 AOF 文件替换旧的 AOF 文件代表重写的完成。混合模式Redis 4.0 中提出了一个混合使用 AOF 日志和内存快照的方法。简单来说内存快照以一定的频率执行在两次快照之间使用 AOF 日志记录这期间的所有命令操作。混合模式的优点快照不用很频繁地执行这就避免了频繁 fork 对主线程的影响AOF 日志也只用记录两次快照间的操作也就是说不需要记录所有操作了因此就不会出现文件过大的情况了也可以避免重写开销。既能享受到 RDB 文件快速恢复的好处又能享受到 AOF 只记录操作命令的简单优势。不同持久化方案适合什么场景只使用RDB的场景缓存型业务数据可从关系型数据库或其它途径恢复容忍数据少量数据丢失。只使用AOF场景可容忍性能下降数据非常重要不希望丢失数据混合模式场景生产环境核心业务既要保证数据不能丢失又要保证redis重启恢复数据快Redis内存淘汰策略了解吗Redis 的内存淘汰策略只有在运行内存达到了配置的最大内存阈值时才会触发这个阈值是通过redis.conf的maxmemory参数来定义的。Redis提供以下几种内存淘汰策略:no-eviction:默认内存淘汰策略禁止驱逐数据当内存不足以容纳新写入数据时新写入操作会报错。volatile-lru:从已设置过期时间的数据集中挑选最近最少使用的数据淘汰。volatile-ttl:从已设置过期时间的数据集中挑选将要过期的数据淘汰。volatile-random: 从已设置过期时间的数据集中任意选择数据淘汰。allkeys-random: 从所有数据集中任意选择数据淘汰。volatile-lfu:从已设置过期时间的数据集中挑选最不经常使用的数据淘汰。allkeys-lfu: 从所有数据集中挑选最不经常使用的数据淘汰。什么是Redis事务Redis 事务是通过 MULTI 和 EXEC 将多个命令打包顺序执行的一种机制能够保证事务执行期间不会被其他客户端的命令打断。Redis 事务不支持回滚也不具备关系型数据库事务的完整 ACID 特性。实际开发过程中不太推荐使用Redis事务。

相关新闻

超简单!“麦克斯韦方程组→波动方程”推导与理解

超简单!“麦克斯韦方程组→波动方程”推导与理解

波动方程是一类二阶线性偏微分方程,核心形式为“物理量的空间二阶变化率与时间二阶变化率成正比”,通用数学表达式为: ∇2ψ−(1/v2)⋅(∂2ψ/∂t2)f(r,t)(1){{\nabla }^{2}}\psi -\left( 1/{{v}^{2}} \right)\cdot \l…

2026/7/6 6:32:02 阅读更多 →
Simulink电力系统仿真(Simulink仿真、报告、设计)(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码

Simulink电力系统仿真(Simulink仿真、报告、设计)(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码

Simulink电力系统仿真(Simulink仿真、报告、设计)(设计源文件万字报告讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码1直流电机 1.2交流电机 1.3Simulink电力系统仿真工具箱3… 2两种电机的模型. 2.1直流电机模型3 2.2交流电机模型(三相异步电动机…

2026/7/6 6:32:13 阅读更多 →
基于Simulink的三相有源电力滤波器(APF)仿真模型(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码

基于Simulink的三相有源电力滤波器(APF)仿真模型(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码

基于Simulink的三相有源电力滤波器(APF)仿真模型(设计源文件万字报告讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码(无源有力滤波器)带报告。该模型采用ip-iq法进行谐波检测,并通过PWM控制结合三角载波实现精确的谐波补偿。仿真结果显…

2026/7/3 5:49:46 阅读更多 →

最新新闻

Claude Code砍80%提示词:AI降本从拆Prompt债

Claude Code砍80%提示词:AI降本从拆Prompt债

Anthropic 前两天做了一件反直觉的事——删掉了 Claude Code 80% 的 system prompt。从 65K tokens 砍到 13K 左右,表现反而更好。 你可能也注意到了:AI 编程工具跑了一年多,各家 agent 的 system prompt 从几百行膨胀到几千行。但 Anthropic…

2026/7/6 6:32:56 阅读更多 →
1.6.4打破一切MITE

1.6.4打破一切MITE

1.6.4MITE太好玩了

2026/7/6 6:30:55 阅读更多 →
如何通过线上线下结合的旅行社模式,提升竞争力?张源知

如何通过线上线下结合的旅行社模式,提升竞争力?张源知

线上线下结合的旅行社模式日益受到关注、尤其是在消费者对旅行体验要求越来越高的背景下。利用这一模式、旅行社能够同时利用线上平台的便利和线下服务等亲切感,这样更好地满足客户的需求。随着技术不断进步,数字化工具提供了更智能的运营方式&#xff0…

2026/7/6 6:28:55 阅读更多 →
ICM-42688-P与STM32F405ZG在运动感知系统中的应用

ICM-42688-P与STM32F405ZG在运动感知系统中的应用

1. ICM-42688-P与STM32F405ZG的黄金组合解析在工业自动化和机器人控制领域,精确的运动感知能力往往决定着整个系统的性能上限。ICM-42688-P作为TDK InvenSense推出的6轴MEMS惯性测量单元(IMU),与STMicroelectronics的STM32F405ZG微控制器形成的技术组合&…

2026/7/6 6:28:55 阅读更多 →
原神成就管理终极指南:YaeAchievement让数据导出变得如此简单![特殊字符]

原神成就管理终极指南:YaeAchievement让数据导出变得如此简单![特殊字符]

原神成就管理终极指南:YaeAchievement让数据导出变得如此简单!🎯 【免费下载链接】YaeAchievement 更快、更准的原神数据导出工具 项目地址: https://gitcode.com/gh_mirrors/ya/YaeAchievement 还在为原神中数百个成就的追踪和管理而…

2026/7/6 6:24:54 阅读更多 →
大模型:临时会话

大模型:临时会话

大模型的临时会话 临时会话指的是在一次对话会话(Session)期间,大模型能够记住之前交流过的内容,从而理解上下文、进行连贯对话的能力。会话结束后,这些记忆通常会被丢弃。 核心机制 1. 上下文窗口(Conte…

2026/7/6 6:24:54 阅读更多 →

日新闻

H2 与 MySQL 单元测试兼容性:5 个关键 SQL 语句差异与规避方案

H2 与 MySQL 单元测试兼容性:5 个关键 SQL 语句差异与规避方案

H2与MySQL单元测试兼容性:5个关键SQL语句差异与规避方案1. 单元测试中的数据库兼容性挑战在Java开发领域,单元测试是保证代码质量的重要环节。当应用涉及数据库操作时,测试环境的搭建往往成为开发者的痛点。H2数据库因其轻量级、内存模式和快…

2026/7/6 0:01:17 阅读更多 →
Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘

Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘

Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘 【免费下载链接】rbtray A fork of RBTray from http://sourceforge.net/p/rbtray/code/. 项目地址: https://gitcode.com/gh_mirrors/rb/rbtray 你是否厌倦了Windows任务栏上密密麻麻的图标&…

2026/7/6 0:01:17 阅读更多 →
Visual C++ 运行时库一键安装终极指南:告别DLL缺失烦恼

Visual C++ 运行时库一键安装终极指南:告别DLL缺失烦恼

Visual C 运行时库一键安装终极指南:告别DLL缺失烦恼 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist 你是否曾经遇到过这样的情况:下载了…

2026/7/6 0:05:19 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

月新闻