Назад | Перейти на главную страницу

Что происходит с Redis, когда на вашем сервере заканчивается свободная оперативная память?

Допустим, вы размещаете Redis на небольшом сервере с небольшим объемом оперативной памяти.

Что произойдет, если данных будет слишком много и вся оперативная память будет израсходована?

Редис умирает? Или продолжает работать?

Зависит от того, как вы его настроите. Вы всегда можете использовать ulimit чтобы ограничить ресурсы, доступные процессу redis, но вы должны в первую очередь изучить, как redis использует память.

Ты можешь настроить Redis чтобы ограничить количество оперативной памяти, которую он будет использовать перед переходом к файлу подкачки.

Вот запись в блоге о том, как работает виртуальная память в Redis.

Во-первых, он попытается переместить некоторые менее используемые данные из ОЗУ в файловое пространство подкачки (если оно у вас есть). После этого убийца OOM (Out Of Memory) начнет обнаруживать процессы, которые выглядят менее важными на основе некоторого набора общих правил, и уничтожает их, чтобы система могла выжить. Если это не удастся, в конечном итоге система просто заклинит. Кроме того, все может пойти наперекосяк, если убийца OOM решит убить что-то важное для вас или функции машины.