Redis хранит рабочий набор данных в оперативной памяти, но время от времени должен положить его копию на диск — иначе перезапуск процесса или падение сервера обнуляет всё, что не успело реплицироваться. Проблема в том, что честная сериализация датасета на диск — это долгая операция ввода-вывода, а Redis по своей природе однопоточный и обслуживает команды строго последовательно. Останавливать сервис на время сохранения гигабайт данных неприемлемо, и Redis эту паузу не делает — вместо неё он использует ровно тот же трюк с fork() и copy-on-write, что лежит…
Подробнее →