我正在使用从 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 上使用 RAM 1.6 GB 的 AWS ec2 小型实例。
请给我一些聪明的解决方案。
提前致谢。
最佳答案
4GB 只有 1.6GB 可用?或者你只是在谈论吞吐量?您应该始终保持在物理内存限制以下。 Redis 不是为虚拟内存设计的(好吧,redis 曾经拥有的对虚拟内存的支持已被弃用和删除)。您可以在 redis.conf 中设置限制(我建议 95% 的物理内存)。
也许这有帮助:shutting off background saving
此外,请记住,redis 以安全的方式处理备份。 如果你有 4GB 的内存和一个 4GB 的 rdb 文件,它会先写一个新的备份,然后删除旧的。 AOF 备份的行为有点不同:仅追加。
亲切的问候,TW
关于php - redis 服务器每 5 分钟崩溃一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22353981/