【问题标题】:How can I stop redis graceful when mem and swap is full?当内存和交换已满时,如何优雅地停止 redis?
【发布时间】:2014-04-22 02:50:49
【问题描述】:

昨晚,我运行了一项工作,将数据插入到 redis 集中(因为我想保持我的数据唯一)。
今天早上醒来后,我发现插入操作非常缓慢。
Htop 显示内存使用情况1884/2015MB 和交换使用情况1019/1021MB
我意识到2G内存不能容纳redis。
然后我在redis-cli 中运行shutdown,但没有任何动作,等待和等待......
我也尝试service redis_6379 stop,但终点站停在stoping...

如何让redis将所有数据保存到dump.rdb并优雅关闭?

【问题讨论】:

    标签: redis


    【解决方案1】:

    通常,一个简单的redis-cli shutdown 就足够了。

    您是否使用定期快照?如果是,您可能可以安全地重新启动计算机。需要注意的重要一点是,启用定期快照会使内存使用量翻倍,因为 Redis 必须在将数据集写入磁盘之前创建数据集的内存副本。

    另一件重要的事情是听从Redis setup hints 的建议,如果您还没有的话。

    这可能无法回答您的问题,但应该可以帮助您避免再次发生。

    【讨论】:

    • 刚才还在纳闷redis为什么会占用这么大的内存。谢谢你的解释,现在我明白了。但是如果我关闭定期快照并且redis耗尽所有内存我该怎么办?redis-cli shutdown似乎正在等待redis-server回复,redis-server似乎正忙于某事,只是不工作.
    • 这是一个我目前不知道如何回答的问题。 redis-server 是否正常响应任何其他命令?如果没有,它可能会因为内存压力而恐慌。不确定这是否有意义,也许@antirez 可以提供帮助?
    猜你喜欢
    • 2021-06-04
    • 1970-01-01
    • 2010-11-05
    • 1970-01-01
    • 1970-01-01
    • 2011-03-12
    • 2018-09-27
    • 2019-11-10
    相关资源
    最近更新 更多