php - redis 服务器每 5 分钟崩溃一次

标签 php mysql redis phpredis

我正在使用从 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/

相关文章:

php - Illuminate\Container\Container::get($id) 的声明必须与 Psr\Container\ContainerInterface::get(string $id) 兼容

php - 函数中的可变长度引用参数列表

php - 无法在我的工作开发机器上远程访问 MySQL

MySQL 插入并确定插入时的值

MYSQL触发器用当前时间戳更新表字段

node.js - 如何在 Redis key 过期时收到通知?

docker - 无法连接到位于 127.0.0.1 的 Redis :6379: Connection refused in docker

php - MySQL, 价格排序

php - 如何在表中插入章节数行

php - 将 php session 移动到 redis。有可能不丢失现有 session 数据吗?