【发布时间】: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