Redis持久化AOF

什么是 AOF?

AOF 是 Append Only File 的意思,它是指 Redis 在持久化数据到硬盘的时候是以日志的形式来记录每个写操作,并保存到磁盘的一个文件中,这个文件的名字默认叫 appendonly.aof

如何设置 Redis 以 AOF 的形式持久化?

修改 redis.conf 中的 appendonly 的值为 yes

这里写图片描述

这样在 redis 启动的时候,就会自动执行 appendonly.aof 文件中的写操作来将数据加载到内存。

如何修复 appendonly.aof 文件?

如果 appendonly.aof 文件被破坏了(文件的内容被篡改了),怎么修复?

执行:redis-check-aof --fix appendonly.aof就可以修复,然后重启 redis 即可。

ps:这个命令它会把发生错误的命令之后的部分清掉。但是,这个修复命令不是万能的,如果文件被改的太惨,修复其实就是清空整个文件(比如,在文件头部进行修改)。

如何配置 AOF 的持久化策略?

仍然是修改配置文件:

这里写图片描述

  • appendfsync always:每个操作都会被记录到磁盘,性能差但是数据完整性比较好

  • appendfsync everysec默认):每秒进行一次持久化,如果一秒内宕机,那一秒内的数据就会丢失

  • appendfsync no:不进行持久化。

AOF 优点?

  • 数据的一致性高

AOF 缺点?

  • 相同数据量的 aof 文件相比于 rdb 文件占用的磁盘空间较大。

  • redis 运行 aof 文件的速度比 rdb 文件慢。

如何在 RDB 和 AOF 两种持久化策略之间做选择?

  • 如果对数据的一致性要求比较高,建议使用 AOF。

  • 大部分情况建议采用 RDB。

  • 如果你只希望数据在 Redis 服务运行的时候存在,那么可以不开启任何一种持久化策略。

总结

这里写图片描述

FAQ

如果同时启用 RDB 和 AOF 这两种策略,那么 Redis 会加载哪个文件?

答:会优先加载 appendonly.aof 文件中的数据,就算只有 dump.rdb 文件,没有 appendonly.aof 文件,redis 也不会加载 dump.rdb 文件中的数据。

那要不要只使用 AOF 呢?

答:建议不要,因为 RDB 更适合于备份数据库,快速重启,AOF 启动慢,执行效率也慢(因为要经常存盘)。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值