我试图找出在以下情况下“ maxmemory”的安全设置:
在redis 文档中,有关BGSAVE事件的内存使用量增加的说法如下:
如果要在写入量很大的应用程序中使用Redis,则在将RDB文件保存在磁盘上或重写AOF日志的同时,Redis最多可能会使用通常使用的内存的2倍。
我是否正确,这意味着在这种情况下,最大内存设置应该设置为不大于(8GB-1GB)/ 2 = 3.5GB?
如果是这样,我将为redis文档创建拉取请求,以更清楚地反映这一点。
在这种情况下,我建议限制为3GB。是的,文档非常正确,短期内运行bgsave会使内存需求增加一倍。但是,我更愿意为系统保留2GB的内存,或者为永久主机保留最大的40%的最大内存。
您表示您有一个非常繁重的应用程序。在这种情况下,我强烈建议第二台服务器执行保存操作。我发现在高写入和bgsave对客户端的响应时间会变长。并不是由Redis本身引起的,而是服务器本身的响应。对于虚拟机尤其如此。在这种设置下,您将使用第二台服务器从主服务器作为从服务器并保存到磁盘,而第一台服务器保持响应状态。