Redis的持久化有哪些方式

Redis 持久化:两种核心方式(面试必背,超清晰)

Redis 是内存数据库 ,断电数据会丢,所以必须用持久化把数据存到磁盘。

一、Redis 有两种持久化方式

  1. RDB(快照)
  2. AOF(日志)

二、RDB 持久化(快照)

是什么

定时把内存里的所有数据 ,生成一个二进制快照文件(dump.rdb)保存到磁盘。

原理

  • 满足配置条件(如 1分钟改了1万次),自动触发
  • fork 子进程 异步写磁盘,不阻塞主进程
  • 恢复时:直接加载整个快照

优点

  • 文件小,恢复速度极快
  • 对性能影响小
  • 适合冷备、灾难恢复

缺点

  • 会丢数据(最后一次快照到宕机之间的数据全丢)
  • 数据量大时,fork 子进程会卡顿

三、AOF 持久化(日志)

是什么

把每一条写命令(set、del等),追加写入日志文件(appendonly.aof)。

原理

  • 记录操作日志,不是记录数据
  • 恢复时:重新执行一遍所有命令
  • 会定期重写日志,避免文件太大

优点

  • 数据安全性高,最多丢1秒数据
  • 日志可读,可修复
  • 适合实时数据不丢的场景

缺点

  • 文件比 RDB 大很多
  • 恢复速度比 RDB 慢
  • 对性能有一点点影响

四、对比表(面试直接背)

特性 RDB AOF
实现方式 定时全量快照 记录写命令
恢复速度 极快 慢
数据安全性 可能丢数据 极高(最多丢1s)
文件大小 小 大
性能影响 小 稍大
适合场景 备份、容灾 实时数据安全

五、企业最佳实践

RDB + AOF 同时开启

  • 用 AOF 保证数据不丢
  • 用 RDB 做冷备份、快速恢复

六、面试标准答案(30秒)

Redis 持久化有两种:

  1. RDB:定时生成内存快照,恢复快,但可能丢数据;
  2. AOF :记录每条写命令,数据安全,恢复慢。
    生产环境一般同时开启,用 AOF 保证数据安全,RDB 用于备份。

总结

  • RDB = 快照,快,可能丢数据
  • AOF = 日志,安全,恢复慢
  • 企业:两个都开
相关推荐
Flynt5 小时前
我把微信运动的排行榜和定点推送复刻了一遍:100万次步数更新只要4秒,坑在别处
redis·后端·性能优化
程序员清风5 小时前
数据处理脚本工程化:日志、配置、命令行与测试
服务器·开发语言·数据库
正在走向自律6 小时前
数据集成产品的技术底座:从日志解析原理到 KFS 同步链路搭建(含建表与增删改查完整代码)
数据库·oracle·信创·数据集成·国产数据库·kingbasees·全量+增量同步
程序员塔塔喵6 小时前
【MySQL篇|第七篇】MySQL事务
数据库·mysql·mysql事务
独隅7 小时前
Claude API 实战教程:从入门到完整项目
android·java·数据库·claude·claude code
_孤傲_7 小时前
快速掌握 MySQL 语法
数据库·后端·mysql
数字新视界9 小时前
一体化机柜在数据中心运维中的创新应用与优势分析
大数据·服务器·数据库·动环监控系统·动力与环境监控系统
SelectDB9 小时前
从 StarRocks 走向 Apache Doris:如何实现引擎平滑替换与架构升级?
大数据·数据库·数据分析
为思念酝酿的痛9 小时前
MySQL的操作
数据库·mysql
猫咪很可爱9 小时前
Oracle ORA-4031 错误分析与处理:SGA 内存不足导致 update/exp/expdp 失败
数据库·oracle