【问题标题】:How does Redis persist data on my local Apache server even after reboot and complete power down?即使在重新启动并完全断电后,Redis 如何在我的本地 Apache 服务器上保留数据?
【发布时间】:2017-12-15 20:25:09
【问题描述】:

据我了解,如果我正在运行本地 apache 开发服务器,Redis 会使用内存来收集我的 RAM。我尝试关闭计算机并断开电源线,但是当我重新启动计算机并再次测试我的测试网站时,我本地服务器开发网站上的 redis 数据仍然存在。我认为当我重新启动系统时 RAM 数据会被完全擦除,即使在我的本地开发环境中重新启动后,Redis 如何保留数据?谢谢! :)

【问题讨论】:

    标签: memory redis persistence ram


    【解决方案1】:

    Redis 仅从 RAM 中提供数据,但它提供了 RDB(快照持久性)和 AOF(变更日志持久性)两种持久化模式。如果在您的 Redis 服务器上启用了任何一种持久性模式,那么您的数据将在重新启动之间保持不变。

    您要检查的配置指令是:

    • 仅追加是
    • 保存

    更多关于Redis Persistence的信息在这里。

    【讨论】:

    • 嘿,我正在阅读您链接的 Redis Persistence 文章,并且想知道,如果 AOF 是“仅附加文件”,那么 RDB 是什么?我用谷歌搜索它,它说它是用于 Redis 和 N64 游戏的文件类型,这让我感到困惑。 :)
    • RDB 代表 Redis 数据库文件。这是您的规则触发保存操作时 Redis 实例状态的快照。
    【解决方案2】:

    Redis 具有以 RDB 或 AOF 格式保存 Redis 数据的持久性选项(基本上将 Redis 数据保存到文件/日志中):

    • RDB 持久性以指定的时间间隔执行数据集的时间点快照。

    • AOF 持久性记录服务器接收到的每个写入操作,将在服务器启动时再次播放,重建原始数据集。命令使用与 Redis 协议本身相同的格式以仅附加方式记录。 Redis 能够在日志太大时重写后台日志。

    • 如果您希望数据在服务器运行时一直存在,您可以完全禁用持久性。
    • 可以在同一个实例中结合 AOF 和 RDB。请注意,在这种情况下,当 Redis 重新启动时,AOF 文件将用于重建原始数据集,因为它保证是最完整的。

    此信息引自https://redis.io/topics/persistence,其中详细介绍了这些选项。

    您可以从 Antirez 博客了解更多信息:Redis Persistence Demystified

    【讨论】:

    • RDB 的缩写代表什么?我认为 AOF 是仅附加文件。
    • @SimonSuh 大多数人似乎将 RDB 称为“快照”或 Redis 数据库 [文件]。它也是快照的文件扩展名。
    猜你喜欢
    • 2012-04-04
    • 2017-10-13
    • 1970-01-01
    • 1970-01-01
    • 2013-10-07
    • 2016-01-13
    • 2015-12-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多