当前位置: 首页 > 知识库问答 >
问题:

redis中的AOF和RDB备份

邵宜年
2023-03-14

这个问题是关于Redis持久性的。

我正在使用redis作为社交网站的“快速后端”。这是一个单一的服务器设置。我一直在将PostgreSQL的职责稳步转移到Redis。目前在etc/redis/redis.conf中,附加设置设置设置为appendOnly no。快照设置为保存900 1保存300 10保存60 10000。所有这些对于生产和开发都是如此。根据生产日志,保存60 10000被大量调用。这是否意味着实际上,我每60秒就会得到一次备份?

一些文献建议同时使用AOF和RDB备份。因此,我正在权衡是否打开appendonly并使用appendfsync everysec。对于任何对硬币两面都有经验的人:

1) 使用appendonly on和appendfsync everysec会导致性能下降吗?它会影响CPU吗?写入负载偏高。

2) 一旦我用这些新设置重新启动redis服务器,我仍然会丢失最后60秒的数据,对吗?

3) 重启时间值得担心吗?我的转储。rdb文件较小~90MB。

我试图了解更多关于redis persistence的信息,并实现我的期望。就我个人而言,我很乐意在发生灾难的情况下丢失60年代的数据,因此我是否应该使用AOF也是我在思考的问题。请随意插话。谢谢


共有1个答案

柴辰阳
2023-03-14

这是否意味着实际上,我每60秒就会得到备份?

不会。如果至少有10000个键被更改,Redis会在60秒后进行后台保存。否则,它不会进行后台保存。

使用appendonly on和appendfsync everysec会导致性能下降吗?它会影响CPU吗?写入负载偏高。

它取决于许多因素,例如磁盘性能(SSD与HDD)、写入/读取负载(QPS)、数据模型等。您需要在特定环境中使用自己的数据进行基准测试。

一旦我使用这些新设置重新启动redis服务器,我仍然会丢失最后60秒的数据,对吗?

不。如果同时打开AOF和RDB,当Redis重新启动时,AOF文件将用于重建数据库。由于您将其配置appendfsync每秒,因此您只会丢失最后1秒的数据。

重启时间值得担心吗?我的垃圾。rdb文件较小~90MB。

如果您打开AOF,当Redis重新启动时,它会重放AOF文件中的日志以重建数据库。通常AOF文件比RDB文件大,并且可能比从RDB文件恢复慢。你应该担心这个吗?在你的特定环境中用你自己的数据做一个基准测试。

编辑

重要通知

假设您已经将Redis设置为使用RDB保存,并将大量数据写入Redis。过了一段时间,您想打开AOF保存。永远不要修改配置文件来打开AOF并重新启动REDIS,否则你会失去一切。

因为,一旦您在redis.conf中设置appendOnly yes并重新启动Redis,它将从AOF文件中加载数据,无论该文件是否存在。如果该文件不存在,它会创建一个空文件,并尝试从该空文件中加载数据。所以你会失去一切。

事实上,你不需要重启Redis来开启AOF。相反,您可以使用命令动态启用它:config set appendonly yes。

 类似资料:
  • 问题内容: 如何完全禁用RDB和AOF?我不在乎持久性,只希望它存在于内存中。 我已经注释掉了: 但这并没有帮助,我发现Redis仍尝试写入磁盘。我知道Redis希望写入磁盘,因为出现以下错误:“无法打开.rdb进行保存:权限被拒绝” 我不在乎该错误,因为我想完全禁用持久性。 问题答案: 如果要更改正在运行的Redis,请登录Redis,然后 禁用aof : 禁用rdb : 如果要在重新启动Red

  • 如何完全禁用RDB和AOF?我不在乎持久性,只希望它出现在内存中。 我已经注释了: 但这并没有起到任何作用,我看到Redis仍在尝试写入磁盘。我知道Redis想写入磁盘,因为我遇到了这样一个错误:“打开失败。用于保存的rdb:权限被拒绝” 我不在乎错误,因为我想完全禁用持久性。

  • 在redis 4.0中,讨论了一个新的混合RDB AOF,在redis更改日志中输入链接描述: 混合RDB-AOF格式。如果启用,则在重写AOF文件时使用新格式:重写使用更紧凑、更快的格式生成RDB格式,并将AOF流附加到文件中。这允许在使用AOF持久性时更快地重写和重新加载 我想知道如何在redis配置文件中设置此配置?

  • 我正在寻找备份我的Redis数据的最佳方法。 我读到了RDB和AOF。但根据我的想法,最好的方法是以以下方式组合: 定期创建RDB,并仅从该点保存AOF。 这样,当您重新启动时。Redis可以恢复RDB文件(比整个AOF回滚更快),然后在最后几秒钟回滚AOF文件。 AOF文件包含自上次RDB以来的每一次写入。 我的问题是,这在Redis中可用吗?或者这有什么不好的地方吗?

  • 我们有一个使用默认配置运行但启用了AOF的Redis服务器。出于性能原因,我们希望禁用AOF,而只使用RDB。 如果我们使用重新启动Redis实例,所有键都将丢失。谢天谢地,使用再次重新启动会将我们的数据返回给我们。 redis文档展示了如何从RDB迁移到AOF,但是从AOF迁移到RDB的正确方法是什么?

  • 本文向大家介绍Redis持久化RDB和AOF区别详解,包括了Redis持久化RDB和AOF区别详解的使用技巧和注意事项,需要的朋友参考一下 RDB是Redis内存到硬盘的快照,用于redis持久化,创建RDB二进制文件,将存储在内存中的数据,持久化的放到硬盘中,当我们需要这些数据的时候,启动载入RDB文件,数据将会被存入内存中,其实RDB就是一种快照的方式持久化存储数据,也可以作为一种复制媒介,这