我正在使用从mysql中提取数据的phpredis设置一个哈希条目;因为我正在将一些数据从我的MySQL数据库迁移到redis以便更快地访问,因为我在redis中进行的数据/更改量很大(4 GB),所以每隔5-10分钟就会崩溃(变量)。
日志说:
[4464] 12 Mar 12:20:04 # Background saving terminated by signal 9
[4464] 12 Mar 12:20:04 * 10 changes in 300 seconds. Saving...
[4464] 12 Mar 12:20:05 * Background saving started by pid 9212
[4464] 12 Mar 12:20:05 # Background saving terminated by signal 9
[4464] 12 Mar 12:20:05 * 10 changes in 300 seconds. Saving...
[4464] 12 Mar 12:20:06 * Background saving started by pid 9214
[4464] 12 Mar 12:20:07 # Background saving terminated by signal 9
[4464] 12 Mar 12:20:07 * 10 changes in 300 seconds. Saving...
[10975] 12 Mar 12:43:13 * Server started, Redis version 2.2.12
这让我一次又一次地重启redis,这非常痛苦,我已经将vm.overcommit设置为1。
我在Ubuntu 12.04 LTS上使用带有1.6 GB RAM的AWS ec2小实例。
请给我一些明智的解决方案。
提前致谢。
答案 0 :(得分:1)
4GB,只有1.6GB可用?或者你只谈论吞吐量?您应始终保持低于物理内存限制。 Redis不是为虚拟内存而设计的(嗯,曾经不推荐使用redis的虚拟内存支持)。您可以在redis.conf中设置限制(我建议物理内存的95%)。
也许这会有所帮助:shutting off background saving
另外,请记住redis以安全的方式处理备份。 如果内存为4GB,rdb文件为4GB,则首先写入新备份,然后删除旧备份。 AOF备份的行为略有不同:仅附加。
亲切的问候,TW