当你的服务器耗尽可用 RAM 时,redis 会发生什么?

当你的服务器耗尽可用 RAM 时,redis 会发生什么?

假设您在一台内存较少的小型服务器上托管 redis。

如果数据太多,所有 RAM 都被用完了,会发生什么情况?

redis 死了吗?还是继续运行?

答案1

首先,它会尝试将一些不常用的数据从 RAM 移出并移到交换文件空间(如果有的话)。之后,OOM(内存不足)杀手将根据一些通用规则开始查找看起来不太重要的进程,并杀死它们,以便系统能够生存。如果失败,最终系统将陷入堵塞。此外,如果 OOM 杀手决定杀死对您或机器功能很重要的某些东西,事情可能会变得一团糟。

答案2

取决于你如何配置它。你总是可以用来ulimit限制 redis 进程可用的资源,但你首先应该研究一下 redis 如何使用内存。

你可以配置 redis限制其在移动到交换文件之前使用的 RAM 量。

这是一篇博客文章关于虚拟内存在 redis 中的工作原理。

相关内容