Действительно ли советы являются длительным хранилищем данных?

"Длительным" я имею в виду, сервер может отказать в любое время, и, пока диск остается в такте, никакие данные не потеряны (см. ACID). Кажется, что это - то, что журналирование режима для, но если Вы позволяете журналировать, разве который не побеждает цель воздействовать на данные в оперативной памяти? Операции чтения не могли бы быть затронуты путем журналирования, но кажется, что журналирование уничтожило бы производительность записи.

41
задан allyourcode 15 March 2010 в 19:43
поделиться

1 ответ

Redis не обычно развертывается как «надежное» хранилище данных (в смысле буквы D в ACID.), Даже с ведением журнала. В большинстве случаев преднамеренно приносится в жертву небольшая долговечность в обмен на скорость.

Однако режим хранения «только файл с добавлением» может быть дополнительно сконфигурирован для долговременной работы за счет производительности. При каждой модификации придется платить за fsync () . Чтобы настроить это, установите эти две опции в вашем .conf файле:

 appendonly yes
 appendfsync always

Из документации: Насколько надежен файл только для добавления?

Проверьте redis.conf, вы можете настроить , сколько раз Redis будет использовать fsync () data на диске. Есть три варианта:

  • Fsync () каждый раз, когда новая команда добавляется в файл журнала добавления. Очень очень медленно, очень безопасно.
  • Fsync () один раз каждую секунду. Достаточно быстро, и вы можете потерять 1 секунду данных в случае аварии.
  • Никогда не используйте fsync (), просто передайте свои данные в руки Операционной системы. Более быстрый и небезопасный метод.

(Обратите внимание, что значение по умолчанию для appendfsync в файле конфигурации, поставляемом с Redis post-2.0.0, составляет каждую секунду , а не всегда .)

56
ответ дан 27 November 2019 в 00:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: