Является ли Redis надежным хранилищем данных?

StackOverflow https://stackoverflow.com/questions/2449969

  •  20-09-2019
  •  | 
  •  

Вопрос

Под «долговечным» я подразумеваю, что сервер может выйти из строя в любой момент, и пока диск остается в целости, данные не теряются (см. КИСЛОТА).Похоже, для этого и нужен режим ведения журнала, но если вы включите ведение журнала, не противоречит ли это цели работы с данными в памяти?Ведение журнала может не влиять на операции чтения, но похоже, что ведение журнала снижает производительность записи.

Это было полезно?

Решение

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

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

 appendonly yes
 appendfsync always

Из документов: Насколько долговечен файл, предназначенный только для добавления?

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top