【问题标题】:Prevent Redis from saving to disc防止 Redis 保存到磁盘
【发布时间】:2012-08-16 11:29:32
【问题描述】:

我正在构建一个 Redis 数据库,它几乎消耗了我所有的机器内存。如果 Redis 在进行大量插入时开始保存到磁盘,则内存消耗或多或少会增加一倍(如文档中所述)。在我的情况下,这会导致糟糕的表现。

我想强制 Redis 在我插入时不存储任何数据,然后手动触发保存。这应该可以解决我的问题,但是我配置了“保存”设置,在某个时间点 Redis 开始保存到磁盘。任何提示如何防止 Redis 这样做?

【问题讨论】:

  • 有趣。我没有适合您的正确答案,但也许您可以在 RDB 模式下运行 Redis 并使其每小时(每分钟、每天或其他间隔)保存数据。然后,如果您可以控制插入,您将在 redis 即将保存到磁盘之前停止插入。只是一个想法。 :)
  • 它以 RDB 模式运行,我将其设置为每 100 小时左右写入磁盘一次。但它开始得更早。暂停插入过程会引入大量和脆弱的解决方法逻辑。
  • 不使用队列暂停而不是直接写入redis怎么样?我知道我建议的两种解决方案都不是那么好,但到目前为止我还没有听说过任何针对 redis 的“我想写的时候写”的政策......:/
  • 缓解内存需求的一种方法是运行 n 个 redis 实例,并在实例之间分片数据。如果你在每个分片上写很多东西,它可能会以同样的方式变坏,但很可能它们不必同时写。
  • 您是否尝试从您的 redis.conf 中删除所有 save 命令?文档说“注意:您可以在所有评论所有“保存”行时禁用保存”

标签: redis bulkinsert


【解决方案1】:

我还建议查看 Persistence only slaves(主/从复制)(让从属持久化数据而不是主控)

看看这个LINK

【讨论】:

    【解决方案2】:

    您可以通过在 redis.conf 中注释所有“保存”行来禁用保存。

    【讨论】:

      【解决方案3】:

      或者,如果您不想编辑任何 .conf 文件,请使用以下命令运行 Redis:

      redis-server --save ""

      根据example config(搜索save):

      It is also possible to remove all the previously configured save
      points by adding a save directive with a single empty string argument
      like in the following example:
      
      save ""
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-10-01
        • 2012-11-02
        • 2013-03-29
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多