Redis错误内存>'maxmemory',但即时消息使用的内存不到最大值的一半

时间:2018-07-09 19:03:16

标签: amazon-web-services redis

我正在尝试将一些较大的csv文件加载到Redis中。我得到内存>'maxmemory'错误。但是,当我检查数据库的使用情况时,它会显示

used_memory_human:4.63M
used_memory_peak_human:9.26G

我不了解那里的断开连接。我正在尝试上传大约5.6gb,它应该不接近9。而且,启动时数据库完全空了

1 个答案:

答案 0 :(得分:1)

发生了一些事情-

  1. CSV的大小可能与redis占用的内存没有直接关系。 Redis消耗多少内存取决于您使用的数据结构。
  2. 在写Redis的同时,Redis也在尝试将数据完整备份到磁盘。要进行备份,redis会分叉现有过程并在写入时进行复制。现在,如果您不经常写入,那么分叉的进程就不会占用太多内存。但是您写得很积极-因此最终需要几乎两倍的内存。

在批量加载期间禁用RDB持久性,然后加载数据。加载数据后,请使用bgsave命令手动进行备份。然后,您可以还原原始备份配置。