我正在使用redis并注意到它因以下错误而崩溃:
MISCONF Redis is configured to save RDB snapshots
我尝试了此post
中建议的解决方案但是在权限和空间方面似乎一切都很好。
htop命令告诉我redis占用了70%的RAM。我试图停止/重新启动redis以便刷新,但在启动时,redis使用的RAM量大幅增长并停止在66%左右。我很确定目前还没有进程使用任何redis实例!
那里发生了什么?答案 0 :(得分:0)
不断增长的ram问题是Redis在首次数据加载时的预期行为,重新启动后,将数据写入磁盘(快照过程)。 Redis倾向于尽可能多地分配内存,除非你不在conf文件中使用“maxmemory”选项。
它分配内存但不立即释放。有时需要几个小时,我看到了这样的情况。
关于Redis的众所周知的事实是,它可以分配最多两倍大小的数据集。
我建议你等几个小时不重启(Redis可以在这个时间工作,获取/设置操作等)并继续观察内存。
请检查that
当按键时,Redis不会总是释放(返回)内存到操作系统 除去。这对Redis来说并不是特别之处,但它是最重要的 malloc()实现工作。例如,如果您填写实例 用5GB的数据,然后删除相当于2GB的数据, 驻留集大小(也称为RSS,即数量) 该进程消耗的内存页面可能仍然存在 5GB,即使Redis声称用户内存大约为3GB。这个 之所以发生,是因为底层分配器无法轻松释放 记忆。例如,通常会分配大多数已删除的密钥 与仍然存在的其他键相同的页面。