Amazon web services redis错误存储器>';maxmemory';但我用的不到最大值的一半

Amazon web services redis错误存储器>';maxmemory';但我用的不到最大值的一半,amazon-web-services,redis,Amazon Web Services,Redis,我正在尝试将一些大型csv文件加载到redis中。我得到内存>'maxmemory'错误。但是,当我检查数据库的使用情况时,它会说 used_memory_human:4.63M used_memory_peak_human:9.26G 我不理解那里的脱节。我正在尝试上传大约5.6gb的数据,但不应该接近9。另外,当我开始时,数据库是完全空的一些事情正在发生- CSV的大小可能与redis占用的内存没有直接关系。redis消耗的内存量取决于您使用的数据结构 当您向redis写入数据时,redi

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

used_memory_human:4.63M
used_memory_peak_human:9.26G

我不理解那里的脱节。我正在尝试上传大约5.6gb的数据,但不应该接近9。另外,当我开始时,数据库是完全空的

一些事情正在发生-

  • CSV的大小可能与redis占用的内存没有直接关系。redis消耗的内存量取决于您使用的数据结构
  • 当您向redis写入数据时,redis还试图将数据完整备份到磁盘。要进行备份,redis将现有进程分叉,并在写入时进行复制。现在,如果您不经常写,分叉进程不会消耗太多内存。但是你写得很有攻击性,所以你最终需要的内存几乎是原来的两倍
  • 在批量加载期间禁用RDB持久性,然后加载数据。加载数据后,使用
    bgsave
    命令手动进行备份。然后可以恢复原始备份配置