RDB/AOF

RDB

把内存数据直接保存到dump.rdb中
将Reids在内存中的数据库记录定时dump到磁盘上的RDB持久化
fork一个子进程,先将数据集写入临时文件,写入成功后,再替换之前的文件,用二进制压缩存储。
对于灾难恢复而言,RDB是非常不错的选择

//900秒内至少1个key更新则dump内存快照
//save操作会阻塞主进程,bgsave会fork出一个子进程
save 900 1
save 300 10
save 60 10000

AOF

将Reids的操作日志以追加的方式写入文件
重启后,优先使用AOF还原数据。
对于相同数量的数据集而言,AOF文件通常要大于RDB文件。
RDB 在恢复大数据集时的速度比 AOF 的恢复速度要快。

appendonly yes
appendfsync no //操作系统每30秒调用fsync,写入磁盘
appendfsync everysec //每秒同步
appendfsync always //redis每次写操作都调用fsync

AOF重写

Redis 执行 fork() ,现在同时拥有父进程和子进程。
子进程开始将新 AOF 文件的内容写入到临时文件。
对于所有新执行的写入命令,父进程一边将它们累积到一个内存缓存中,一边将这些改动追加到现有 AOF 文件的末尾: 这样即使在重写的中途发生停机,现有的 AOF 文件也还是安全的。
当子进程完成重写工作时,它给父进程发送一个信号,父进程在接收到信号之后,将内存缓存中的所有数据追加到新 AOF 文件的末尾。
现在 Redis 原子地用新文件替换旧文件,之后所有命令都会直接追加到新 AOF 文件的末尾。

auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64MB

说明

在版本号大于等于 2.4 的 Redis 中, BGSAVE 执行的过程中, 不可以执行 BGREWRITEAOF 。
这可以防止两个 Redis 后台进程同时对磁盘进行大量的 I/O 操作。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值