"Длительным" я имею в виду, сервер может отказать в любое время, и, пока диск остается в такте, никакие данные не потеряны (см. ACID). Кажется, что это - то, что журналирование режима для, но если Вы позволяете журналировать, разве который не побеждает цель воздействовать на данные в оперативной памяти? Операции чтения не могли бы быть затронуты путем журналирования, но кажется, что журналирование уничтожило бы производительность записи.
Redis не обычно развертывается как «надежное» хранилище данных (в смысле буквы D в ACID.), Даже с ведением журнала. В большинстве случаев преднамеренно приносится в жертву небольшая долговечность в обмен на скорость.
Однако режим хранения «только файл с добавлением» может быть дополнительно сконфигурирован для долговременной работы за счет производительности. При каждой модификации придется платить за fsync () . Чтобы настроить это, установите эти две опции в вашем .conf файле:
appendonly yes
appendfsync always
Из документации: Насколько надежен файл только для добавления?
Проверьте redis.conf, вы можете настроить , сколько раз Redis будет использовать fsync () data на диске. Есть три варианта:
- Fsync () каждый раз, когда новая команда добавляется в файл журнала добавления. Очень очень медленно, очень безопасно.
- Fsync () один раз каждую секунду. Достаточно быстро, и вы можете потерять 1 секунду данных в случае аварии.
- Никогда не используйте fsync (), просто передайте свои данные в руки Операционной системы. Более быстрый и небезопасный метод.
(Обратите внимание, что значение по умолчанию для appendfsync в файле конфигурации, поставляемом с Redis post-2.0.0, составляет каждую секунду
, а не всегда
.)