【面试常问】Redis的持久化机制是什么?各自的优缺点?

Redis的持久化机制及优缺点

      Redis在我们日常开发中是必不可少的,但是有可能会造成数据的丢失,因此就有了持久化机制,而 Redis的持久化机制也是面试中的高频问题,决定整理一下;如有错误还请个位指正!

什么是Redis持久化?

      Redis持久化就是把内存的数据写到磁盘中去,防止服务宕机了内存数据丢失;

Redis提供两种持久化机制RDB(默认)和AOF机制;

RDB

      RDB(Redis DataBase缩写快照)是Redis默认的持久化方式。按照一定的时间将内存的数据以快照的形式保存到硬盘中,对应产生的数据文件为dump.rdb。通过配置文件中的save参数来定义快照的周期;记录Redis数据库的所有键值对,在某个时间点将数据写入一个临时文件持久化结束后,用这个临时文件替换上次持久化的文件达到数据恢复

请添加图片描述

优点:

  1. 只有一个文件 dump.rdb,方便持久化;
  2. 容灾性好,一个文件可以保存到安全的磁盘;
  3. 性能最大化,fork子进程来完成写操作,让主进程继续处理命令,所以是IO最大化。使用单独子进程来进行持久化,主进程不会进行任何 IO 操作,保证了Redis的高性能;
  4. 相对于数据集大时,比 AOF 的启动效率更高;

缺点:

  1. 数据安全性低;
  2. RDB 是间隔一段时间进行持久化,如果在持久化时Redis发生故障,会发生数据丢失。所以这种方式更适合数据要求不严谨的时候;

AOF

      AOF持久化(即Append Only File持久化),是将Redis执行的每次写命令记录到单独的日志文件中,当重启Redis会重新将持久化的日志中文件恢复数据。当两种方式同时开启时数据恢复Redis会优先选择AOF恢复

请添加图片描述

优点:

  1. 数据安全,AOF持久化可以配置 appendfsync 属性,有always属性,每进行一次命令操作就记录到AOF文件中一次;
  2. 通过append模式写文件,即使中途服务器宕机,可以通过 redis-check-aof 工具解决数据一致性问题;
  3. AOF机制的rewrite模式。AOF文件没被 rewrite 之前(文件过大时会对命令 进行合并重写),可以删除其中的某些命令(比如误操作的 flushall);

缺点:

  1. AOF文件比RDB文件大,且恢复速度慢;
  2. 数据集大的时候,比RDB启动效率低;

RDB和AOF的对比

  • AOF文件比RDB更新频率高,优先使用AOF还原数据;
  • AOF比RDB更安全也更大;
  • RDB性能比AOF好;
  • 如果两个都配了优先加载AOF;
  • 28
    点赞
  • 151
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 7
    评论
回答: Redis持久化机制是指将Redis中的数据保存到磁盘上,以防止数据丢失。Redis有两种持久化机制,分别是RDB持久化AOF持久化RDB持久化是在某个时间点对Redis中的数据进行全量备份,生成当前时刻的数据快照。触发RDB持久化可以通过save命令或bgsave命令来手动触发,也可以通过自动化触发来定期执行。save命令会阻塞Redis服务器,期间无法处理其他命令,因此在线上环境中不建议使用。而bgsave命令会通过fork一个子进程来完成RDB的过程,阻塞时间很短。另外,AOF持久化是将Redis执行的每次写命令记录到单独的日志文件中,当Redis重启时,会重新将持久化的日志文件恢复数据。当两种持久化方式同时开启时,Redis会优先选择AOF恢复数据。\[1\]\[2\]\[3\] #### 引用[.reference_title] - *1* *2* [Redis持久化机制](https://blog.csdn.net/weixin_37672801/article/details/127476772)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [【面试常问Redis持久化机制是什么?各自的优缺点?](https://blog.csdn.net/weixin_42601136/article/details/122759402)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Willing卡卡

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值