Отредактировано 3 Несколько недель назад от ExtremeHow Редакционная команда
RedisКонфигурацияНастройкиУстойчивостьХранение данныхРезервное копированиеВосстановлениеБаза данныхАдминистрированиеСервер
Перевод обновлен 3 Несколько недель назад
Redis — это хранилище данных в памяти, широко используемое для кеширования, управления сеансами и аналитики в реальном времени. Одним из критически важных аспектов работы Redis является постоянство. Постоянство в контексте Redis заключается в обеспечении долговечности данных в случае неожиданных сбоев. Хотя Redis в первую очередь является базой данных в памяти, его уровень постоянства помогает гарантировать доступность данных за пределами нестабильности памяти. У Redis есть два основных варианта постоянства: RDB (резервное копирование базы данных Redis) и AOF (файл только для добавления). Вот подробное руководство по эффективной настройке постоянства Redis, исследование каждого варианта и предоставление всестороннего понимания того, как они работают.
Прежде чем перейти к настройке, важно понять два основных варианта долговечности, которые предлагает Redis:
RDB расшифровывается как резервное копирование базы данных Redis. Этот вид постоянства позволяет создавать снимки ваших наборов данных в памяти через заданные интервалы времени. Снимки сохраняются как двоичные файлы на диске. Основное преимущество RDB заключается в простоте использования и быстром восстановлении наборов данных из этих снимков. Однако недостатком является то, что если Redis сбойнет, данные, не сохраненные в последнем снимке, будут потеряны.
Как и в случае с RDB, вы можете настроить Redis на автоматическое создание снимков через заданные интервалы времени или в зависимости от частоты изменений в наборе данных. Файлы снимков можно перемещать на другие серверы для резервного копирования, что обеспечивает дополнительный уровень защиты данных.
AOF расшифровывается как файл только для добавления. В отличие от RDB, который периодически создает снимки, AOF регистрирует каждую операцию записи, полученную сервером. Это добавляется в файл, который можно использовать для воссоздания набора данных по мере необходимости. AOF обеспечивает лучшую долговечность, чем RDB, так как чаще записывает изменения на диск.
С помощью AOF вы можете контролировать частоту записи данных на диск с помощью различных параметров конфигурации. Файлы только для добавления больше, чем снимки RDB, но они предлагают преимущество более детального восстановления данных.
Чтобы настроить Redis для использования постоянства RDB, вы должны установить политики создания снимков, которые вы хотите. Обычно это делается в файле redis.conf
, который является основным файлом конфигурации для Redis.
Файл конфигурации Redis по умолчанию обычно находится в /etc/redis/redis.conf
в системах Linux или где угодно, где вы решите установить Redis. Откройте этот файл в своем любимом текстовом редакторе.
В файле конфигурации вы найдете следующие строки:
save 900 1
save 300 10
save 60 10000
Каждая из этих строк указывает условие, при котором Redis создаст снимок вашего набора данных.
save 900 1
: Сохраняйте набор данных каждые 900 секунд (15 минут), если изменился хотя бы 1 ключ.save 300 10
: Сохраняйте набор данных каждые 300 секунд (5 минут), если имеется как минимум 10 изменений.save 60 10000
: Сохраняйте набор данных каждые 60 секунд, если имеется как минимум 10 000 изменений.Вы можете настроить эти параметры в соответствии с вашими потребностями. Например, если вы хотите сохранять 5 изменений ключей каждые 10 минут, добавьте строку, например: save 600 5
.
После внесения изменений сохраните файл конфигурации и перезапустите сервер Redis, чтобы применить изменения. Это делается с помощью команды: sudo systemctl restart redis
или любым другим способом управления службами в вашей системе.
Постоянство AOF обеспечивает более высокий уровень защиты данных, чем снимки RDB, регистрируя каждую операцию записи. Включение постоянства AOF также требует некоторых изменений в файле redis.conf
.
В вашем файле redis.conf
найдите следующую строку:
# appendonly no
Просто удалите комментарий со строки, удалив #
и измените no
на yes
, как показано ниже:
appendonly yes
Постоянство AOF предоставляет несколько параметров конфигурации:
always
: Данные немедленно записываются на диск каждый раз, когда они записываются. Обеспечивает максимальную целостность данных, но медленнее.everysec
: Данные записываются на диск каждую секунду. Обеспечивает хороший баланс между производительностью и защитой данных.no
: Позволяет операционной системе решать, когда записывать данные, политики кэширования обычно реализуются на уровне ОС.redis.conf
ее можно переключать: no-appendfsync-on-rewrite no
BGREWRITEAOF
.aof-rewrite-incremental-fsync yes
.Как и в случае с RDB, после изменения файла конфигурации сохраните изменения и перезапустите Redis, чтобы применить их:
sudo systemctl restart redis
Вы можете настроить Redis на использование как RDB, так и AOF. Этот гибридный подход обеспечивает гибкость снимков, а также детальность добавленных записей. В сценариях с высокими требованиями к надежности это лучшая практика.
Чтобы этого добиться, убедитесь, что вы настроили RDB, как описано ранее, и включили AOF:
appendonly yes appendfsync everysec
Когда используются оба метода постоянства, при запуске Redis по умолчанию предпочитает загружать данные из AOF, поскольку он обычно имеет самое актуальное состояние данных.
Выбор правильного метода усиления в основном зависит от конкретных требований приложения:
После того, как вы настроили нужное постоянство, важно правильно протестировать и проверить поведение:
Постоянство Redis — это критический аспект эффективного управления долговечностью данных. Понимая и правильно реализуя RDB и AOF или их комбинацию, вы обеспечиваете сохранность ваших данных в случае сбоев. Тщательный баланс требований к производительности и требованиям к безопасности данных поможет вам выбрать наиболее подходящий вариант для вашего использования.
Как всегда, регулярно создавайте резервные копии и учитывайте общую архитектуру вашей системы, включая такие факторы, как репликация и кластеризация, для всесторонней защиты данных.
Если вы найдете что-то неправильное в содержании статьи, вы можете