redis rdb和aof

本文详细介绍了Redis的两种持久化方式:RDB和AOF。RDB通过快照实现数据的周期性保存,适用于冷备份场景;AOF则记录每一次写操作,确保数据的安全性。文章还对比了两者的优缺点,并提出了结合使用的建议。

1.redis两种持久化的方式

RDB持久化机制:对redis中的数据执行周期性的持久化
AOF持久化机制:对每条写入命令作为日志,以append-only的模式写入一个日志文件中,在redis重启时,可通过回放AOF日志中的写入指令来重新构建整个数据集

RDB的优点:

  • RDB文件是紧凑的二进制文件,比较适合做冷备,全量复制的场景
  • 相对于AOF持久化机制来说,直接基于RDB数据文件来重启和恢复Redis进程,更加快速;
  • RDB对Redis对外提供的读写服务,影响非常小,可以让Redis保持高性能,因为Redis主进程只需要fork一个子进程,让子进程执行磁盘IO操作来进行RDB持久化即可;

RDB的缺点:

  • 间隔一段时间才保存,一旦发送故障,会丢失数据
  • RDB每次在fork子进程来执行RDB快照数据文件生成的时候,如果数据文件特别大,可能会导致对客户端提供的服务暂停数毫秒,或者甚至数秒;
  • RDB无法实现实时或者秒级持久化

AOF的优点:

  • AOF可以更好的保护数据不丢失。一般AOF会每隔1秒,通过一个后台线程执行一次fsync操作,最多丢失1秒钟的数据,Redis进程挂了,最多丢掉1秒钟的数据;
  • AOF日志文件以append-only模式写入,写入性能比较高
  • AOF日志文件即使过大的时候,出现后台重写操作,也不会影响客户端的读写。
  • 适合做灾难性的误删除紧急恢复

AOF的缺点:

  • 对于同一份数据来说,AOF日志文件通常比RDB数据快照文件更大,恢复速度慢;
  • AOF开启后,支持的写QPS会比RDB支持的写QPS低,因为AOF一般会配置成每秒fsync一次日志文件,当然,每秒一次fsync,性能也还是很高的;

总结:

  • 一般可以结合两种使用 rdb做冷备份,aof做热备份
  •  RDB是Redis内存到硬盘的快照,用于持久化。
  •  save通常会阻塞Redis。影响其他客户端连接时间。
  • bgsave不会阻塞Redis ,但是会fork新进程。
  • save自动配置满足任一就会被执行。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值