防止Redis将数据保存到磁盘上

6

我正在构建一个Redis数据库,它几乎占用了我的所有内存。如果Redis在进行大量插入时开始保存到磁盘,则内存消耗会增加一倍左右(如文档中所述)。这在我的情况下导致了可怕的性能问题。

我想强制Redis在插入数据时不存储任何数据,并在之后手动触发保存操作。这应该可以解决我的问题,但是无论我如何配置“save”设置,Redis都会在某个时间点开始保存到磁盘。有什么提示可以防止Redis这样做吗?


它正在运行RDB模式,我设置它每100小时写入一次磁盘。但它会提前开始。暂停插入过程会引入太多和太脆弱的解决逻辑。 - Achim
那么,我们可以考虑使用队列来代替直接写入Redis,这样会比暂停的方式更好。我知道我提出的两种解决方案都不是很理想,但是到目前为止,我还没有听说过Redis有任何“我想写入时就写入”的策略... :/ - Matjaz Muhic
1
你尝试过从redis.conf中删除所有的save命令吗?文档上说:“注意:你可以通过注释掉所有的"save"行来禁用保存功能。” - Sripathi Krishnan
但是他该如何保存数据呢?您能手动触发保存吗? - Matjaz Muhic
@SripathiKrishnan:你能把你的评论写成一个答案,我会接受它吗?那解决了我的问题。 - Achim
显示剩余3条评论
3个回答

6
你可以在redis.conf中注释掉所有的“save”行来禁用保存。

1

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

redis-server --save ""

根据示例配置(搜索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 ""

0
我还建议看一下只有持久化从属(主/从复制)(让从属持久化数据而不是主服务器)。
请查看此链接

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接